¿Qué es un punto final?

172

He estado leyendo sobre OAuth y sigue hablando de puntos finales. ¿Qué es exactamente un punto final?

Klanestro
fuente
2
Sigo tropezando con publicaciones antiguas como estas y no puedo entender por qué este tipo de publicación siempre se votó en el pasado, pero definitivamente sería criticado y rechazado si se trata de una publicación actual.
tnkh
66
Tal vez sea votado porque es una pregunta que otras personas también tienen. ¿No es ese el punto?
Nora McDougall-Collins

Respuestas:

74

Todas las respuestas publicadas hasta ahora son correctas, un punto final es simplemente un extremo de un canal de comunicación. En el caso de OAuth, hay tres puntos finales con los que debe preocuparse:

  1. URI de solicitud de credencial temporal (llamada URL de token de solicitud en la especificación de la comunidad OAuth 1.0a). Este es un URI al que envía una solicitud para obtener un token de solicitud no autorizado del servidor / proveedor de servicios.
  2. URI de autorización del propietario del recurso (denominado URL de autorización del usuario en la especificación de la comunidad OAuth 1.0a). Este es un URI al que le indica al usuario que autorice un token de solicitud obtenido del URI de solicitud de credencial temporal.
  3. URI de solicitud de token (llamado URL de token de acceso en la especificación de la comunidad OAuth 1.0a). Este es un URI al que envía una solicitud para intercambiar un token de solicitud autorizado por un token de acceso que luego puede usarse para obtener acceso a un recurso protegido.

Espero que eso ayude a aclarar las cosas. ¡Diviértete aprendiendo sobre OAuth! Publique más preguntas si tiene dificultades para implementar un cliente OAuth.

Paul Osman
fuente
55
¿Por qué no simplemente llamarlo (es decir, el "punto final") un "URI base"? ¿Existe una diferencia fundamental entre un "punto final" y un "URI base"? Gracias.
Retenido el
@Xlsx Depende de la implementación. Un ejemplo de solicitud podría ser GET "/ users? Name = admin" o "/ users / admin". Podrías hacer uno o el otro o ambos o ninguno.
Burak
2
No es útil ya que OP solicitó "puntos finales generales", no específicamente OAuth. Ahora estoy confundido.
amanecer
312

Vamos chicos :) Podríamos hacerlo más simple, con ejemplos:

/this-is-an-endpoint
/another/endpoint
/some/other/endpoint
/login
/accounts
/cart/items

y cuando se coloca bajo un dominio, se vería así:

https://example.com/this-is-an-endpoint
https://example.com/another/endpoint
https://example.com/some/other/endpoint
https://example.com/login
https://example.com/accounts
https://example.com/cart/items

Puede ser http o https, usamos https en el ejemplo.

Además, el punto final puede ser diferente para diferentes métodos HTTP, por ejemplo:

GET /item/{id}
PUT /item/{id}

sería de dos puntos finales diferentes - uno para r etrieving (como en "c R ud" abreviatura), y el otro para u ctualización (como en "cr U d")

Y eso es todo, ¡realmente así de simple!

Tomeg
fuente
25
Votaron por mencionar que diferentes métodos HTTP definen puntos finales separados.
Boyan Kushlev
44
Mateo 20:16 RV - Entonces el último será el primero (..) :)
sobi3ch
2
Es una lástima, Stack Exchange no muestra esta respuesta como la primera o segunda respuesta. Para mí, estaba muy por debajo de la lista y definitivamente era la mejor, ya que no sabía si un conjunto completo de acciones y controladores se consideraba un punto final, o si una sola acción en un solo controlador definía un punto final. Esta respuesta me dijo que era lo último.
Thorkil Værge
Tan desafortunado que OP no seleccionó esta respuesta, que es la mejor respuesta.
1
@Parth el punto final generalmente es lo que se supone que debe ser llamado por una solicitud, lo que proporciona como interfaz para sus consumidores de API, lo que les dice que usen. Entonces, en este ejemplo, su implementación maneja dos puntos finales (porque proporcionó a su consumidor / usuario de API dos formas de llamar a algo). Pero acabo de escribir que es "en general" y si hay una persona que insiste en llamar al punto final un poco diferente (por ejemplo, en su ejemplo, alguien insistiría en decir que este es un punto final), entonces usted dice "OK, lo que sea, estos son solo palabras! Estoy lo suficientemente feliz de que simplemente nos entendemos "
Tomeg
43

Es un extremo de un canal de comunicación, por lo que a menudo se representaría como la URL de un servidor o servicio.

David M
fuente
35

Un punto final es un patrón de URL utilizado para comunicarse con una API.

SirLemuel
fuente
12

Punto final , en la jerga de autenticación OpenID, es la URL a la que envía (POST) la solicitud de autenticación.

Extractos de la API de autenticación de Google

Para obtener el punto final de Google OpenID, realice el descubrimiento enviando una solicitud HTTP GET o HEAD a https://www.google.com/accounts/o8/id . Al usar un GET, recomendamos configurar el encabezado Aceptar en "application / xrds + xml". Google devuelve un documento XRDS que contiene una URL de punto final del proveedor OpenID. La dirección del punto final se anota como:

<Service priority="0">
<Type>http://specs.openid.net/auth/2.0/server</Type> 
<URI>{Google's login endpoint URI}</URI> 
</Service>

Una vez que haya adquirido el punto final de Google, puede enviarle solicitudes de autenticación, especificando los parámetros apropiados (disponibles en la página vinculada). Se conecta al punto final enviando una solicitud a la URL o realizando una solicitud HTTP POST.

Amarghosh
fuente
7

Un punto final es el 'punto de conexión' de un servicio, herramienta o aplicación a la que se accede a través de una red. En el mundo del software, cualquier aplicación de software que se esté ejecutando y "escuchando" conexiones utiliza un punto final como la "puerta principal". Cuando desea conectarse a la aplicación / servicio / herramienta para intercambiar datos, se conecta a su punto final

Justin Franks
fuente
4

El término Endpoint se usó inicialmente para servicios WCF. Más tarde, a pesar de que esta palabra se usa como sinónimo de recursos API, REST recomienda llamar a estos URI (URI [s] que entienden los verbos HTTP y siguen la arquitectura REST) ​​como "Recurso".

En pocas palabras, un recurso o punto final es una especie de punto de entrada a una aplicación alojada remotamente que permite a los usuarios comunicarse con él a través del protocolo HTTP.

krishna kanth
fuente
4

Los votos negativos no tienen nada que ver conmigo, pero la fuente (: Incluso no hay razón indicada para eso.


Cada punto final es la ubicación desde la cual las API pueden acceder a los recursos que necesitan para llevar a cabo su función. Es decir, el lugar donde las API envían solicitudes y donde vive el recurso se denomina punto final.

De una buena fuente .

snr
fuente
2

El punto final del término es la URL que se centra en la creación de una solicitud. Eche un vistazo a los siguientes ejemplos desde diferentes puntos:

/api/groups/6/workings/1
/api/v2/groups/5/workings/2
/api/workings/3

Pueden acceder claramente a la misma fuente en una API determinada.

ismael
fuente
1

Respuesta corta: "un punto final es una abstracción que modela el final de un canal de mensajes a través del cual un sistema puede enviar o recibir mensajes" ( Ibsen, 2010 ).


Punto final vs URI (desambiguación)

El punto final no es lo mismo que un URI. Una razón es porque un URI puede conducir a diferentes puntos finales como un punto final para OBTENER, otro para POSTAR, y así sucesivamente. Ejemplo:

@GET /api/agents/{agent_id} //Returns data from the agent identified by *agent_id*
@PUT /api/agents/{agent_id} //Update data of the agent identified by *agent_id*

Punto final vs recurso (desambiguación)

El punto final no es lo mismo que un recurso. Una razón es porque diferentes puntos finales pueden conducir al mismo recurso. Ejemplo:

@GET /api/agents/{agent_id} @Produces("application/xml") //Returns data in XML format
@GET /api/agents/{agent_id} @Produces("application/json") //Returns data in JSON format
Cleber Jorge Amaral
fuente
0

En pocas palabras, un punto final es un extremo de un canal de comunicación. Cuando una API interactúa con otro sistema, los puntos de contacto de esta comunicación se consideran puntos finales. Para las API, un punto final puede incluir una URL de un servidor o servicio. Cada punto final es la ubicación desde la cual las API pueden acceder a los recursos que necesitan para llevar a cabo su función.

Las API funcionan con 'solicitudes' y 'respuestas'. Cuando una API solicita información de una aplicación web o servidor web, recibirá una respuesta. El lugar donde las API envían solicitudes y dónde vive el recurso se denomina punto final.

Lee mas...

Saikat
fuente