Qu'est-ce qu'un point final?

172

J'ai lu sur OAuth et il ne cesse de parler des points de terminaison. Qu'est-ce qu'un point final exactement?

Klanestro
la source
2
Je n'arrête pas de trébucher sur d'anciens messages comme ceux-ci et je ne comprends pas pourquoi ce type de message est toujours voté pour le passé, mais il serait certainement critiqué et déclassé s'il s'agit d'une publication actuelle.
tnkh
6
Peut-être que c'est voté parce que c'est une question que d'autres personnes se posent aussi. N'est-ce pas le but?
Nora McDougall-Collins

Réponses:

74

Toutes les réponses publiées jusqu'à présent sont correctes, un point final est simplement une extrémité d'un canal de communication. Dans le cas d'OAuth, vous devez vous préoccuper de trois points de terminaison:

  1. URI de demande d'informations d'identification temporaire (appelée URL de jeton de demande dans la spécification de la communauté OAuth 1.0a). Il s'agit d'un URI auquel vous envoyez une demande afin d'obtenir un jeton de demande non autorisé auprès du serveur / fournisseur de services.
  2. URI d'autorisation du propriétaire de la ressource (appelée URL d'autorisation utilisateur dans la spécification de la communauté OAuth 1.0a). Il s'agit d'un URI vers lequel vous dirigez l'utilisateur pour autoriser un jeton de demande obtenu à partir de l'URI de demande d'informations d'identification temporaire.
  3. URI de demande de jeton (appelé URL de jeton d'accès dans la spécification de la communauté OAuth 1.0a). Il s'agit d'un URI auquel vous envoyez une demande afin d'échanger un jeton de demande autorisé contre un jeton d'accès qui peut ensuite être utilisé pour obtenir l'accès à une ressource protégée.

J'espère que cela aidera à clarifier les choses. Amusez-vous à découvrir OAuth! Postez d'autres questions si vous rencontrez des difficultés lors de la mise en œuvre d'un client OAuth.

Paul Osman
la source
5
Pourquoi ne pas l'appeler simplement (c'est-à-dire "endpoint") un "URI de base"? Existe-t-il une différence fondamentale entre un «point final» et un «URI de base»? Merci.
Retenue le
@Xlsx Cela dépend de l'implémentation. Un exemple de demande pourrait être GET "/ users? Name = admin" ou "/ users / admin". Vous pouvez faire l'un ou l'autre ou les deux ou ni l'un ni l'autre.
Burak
2
Inutile car OP a demandé des "points de terminaison généraux", pas spécifiquement OAuth. Je suis maintenant confus.
aube du
312

Allez les gars :) Nous pourrions le faire plus simplement, par des exemples:

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

et lorsqu'il est placé sous un domaine, cela ressemblerait à:

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

Peut être http ou https, nous utilisons https dans l'exemple.

Le point de terminaison peut également être différent pour différentes méthodes HTTP, par exemple:

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

serait deux extrémités différentes - une pour r etrieving (comme dans « c R abréviation ud »), et l'autre pour u ise à jour (comme dans « cr U d »)

Et c'est tout, vraiment aussi simple que cela!

Tomeg
la source
25
J'ai voté pour avoir mentionné que différentes méthodes HTTP définissent des points de terminaison distincts.
Boyan Kushlev
4
Matthew 20:16 LSG - Donc le dernier sera le premier (..) :)
sobi3ch
2
C'est dommage, Stack Exchange n'affiche pas cette réponse comme première ou deuxième réponse. Pour moi, c'était en bas de la liste et certainement le meilleur car je ne savais pas si tout un ensemble d'actions et de contrôleurs était considéré comme un point de terminaison, ou une seule action dans un seul contrôleur définissait un point de terminaison. Cette réponse m'a dit que c'était la dernière.
Thorkil Værge
Dommage que OP n'ait pas sélectionné cette réponse, qui est la meilleure.
1
@Parth, le point de terminaison est généralement ce qui est censé être appelé par une requête, ce que vous fournissez comme interface à vos consommateurs d'API - ce que vous leur dites d'utiliser. Ainsi, dans cet exemple, votre implémentation gère deux points de terminaison (car vous avez fourni à votre consommateur / utilisateur d'API deux façons d'appeler quelque chose). Mais je viens d'écrire que c'est "généralement" et s'il y a une personne qui insiste pour appeler un point de terminaison un peu différent (par exemple, dans votre exemple, quelqu'un insisterait pour dire que c'est un point de terminaison), alors vous dites "OK, peu importe, ce sont juste des mots! Je suis assez heureux que nous nous comprenions simplement "
Tomeg
43

C'est une extrémité d'un canal de communication, si souvent cela serait représenté comme l'URL d'un serveur ou d'un service.

David M
la source
35

Un point de terminaison est un modèle d'URL utilisé pour communiquer avec une API.

SirLemuel
la source
12

Endpoint , dans le jargon d'authentification OpenID, est l'URL à laquelle vous envoyez (POST) la demande d'authentification.

Extraits de l' API d'authentification Google

Pour obtenir le point de terminaison Google OpenID, effectuez la découverte en envoyant une requête HTTP GET ou HEAD à https://www.google.com/accounts/o8/id . Lorsque vous utilisez un GET, nous vous recommandons de définir l'en-tête Accept sur "application / xrds + xml". Google renvoie un document XRDS contenant une URL de point de terminaison de fournisseur OpenID. L'adresse de point de terminaison est annotée comme suit:

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

Une fois que vous avez acquis le point de terminaison Google, vous pouvez lui envoyer des demandes d'authentification, en spécifiant les paramètres appropriés (disponibles sur la page liée). Vous vous connectez au point de terminaison en envoyant une requête à l'URL ou en effectuant une requête HTTP POST.

Amarghosh
la source
7

Un point de terminaison est le «point de connexion» d'un service, d'un outil ou d'une application accessible via un réseau. Dans le monde des logiciels, toute application logicielle qui s'exécute et «écoute» les connexions utilise un point de terminaison comme «porte d'entrée». Lorsque vous souhaitez vous connecter à l'application / service / outil pour échanger des données, vous vous connectez à son point de terminaison

Justin Franks
la source
4

Le terme Endpoint a été initialement utilisé pour les services WCF. Plus tard, même si ce mot est utilisé comme synonyme de ressources API, REST recommande d'appeler ces URI (URI [s] qui comprennent les verbes HTTP et suivent l'architecture REST) ​​comme "Ressource".

En un mot, une ressource ou un point de terminaison est une sorte de point d'entrée vers une application hébergée à distance qui permet aux utilisateurs de communiquer avec elle via le protocole HTTP.

Krishna Kanth
la source
4

Le ou les votes négatifs n'ont rien à voir avec moi, mais la source (: Même aucune raison indiquée pour cela.


Chaque point de terminaison est l'emplacement à partir duquel les API peuvent accéder aux ressources dont elles ont besoin pour exécuter leur fonction. C'est-à-dire que l'endroit où les API envoient des demandes et où réside la ressource, est appelé un point de terminaison.

D' une belle source .

snr
la source
2

Le point de terminaison du terme est l'URL qui se concentre sur la création d'une demande. Jetez un œil aux exemples suivants à partir de différents points:

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

Ils peuvent clairement accéder à la même source dans une API donnée.

Ismael
la source
1

Réponse courte: "un endpoint est une abstraction qui modélise la fin d'un canal de message à travers lequel un système peut envoyer ou recevoir des messages" ( Ibsen, 2010 ).


Endpoint vs URI (homonymie)

Le point de terminaison n'est pas le même qu'un URI. L'une des raisons est qu'un URI peut conduire vers différents points de terminaison, comme un point de terminaison vers GET, un autre vers POST, et ainsi de suite. Exemple:

@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*

Endpoint vs ressource (homonymie)

Le point de terminaison n'est pas le même qu'une ressource. L'une des raisons est que différents points de terminaison peuvent accéder à la même ressource. Exemple:

@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
la source
0

En termes simples, un point final est une extrémité d'un canal de communication. Lorsqu'une API interagit avec un autre système, les points de contact de cette communication sont considérés comme des points de terminaison. Pour les API, un point de terminaison peut inclure une URL d'un serveur ou d'un service. Chaque point de terminaison est l'emplacement à partir duquel les API peuvent accéder aux ressources dont elles ont besoin pour exécuter leur fonction.

Les API fonctionnent à l'aide de «requêtes» et de «réponses». Lorsqu'une API demande des informations à une application Web ou à un serveur Web, elle recevra une réponse. L'endroit où les API envoient les demandes et où réside la ressource s'appelle un point de terminaison.

Lire la suite...

Saikat
la source