O que é um ponto de extremidade?

172

Eu tenho lido sobre o OAuth e ele continua falando sobre pontos finais. O que é exatamente um ponto de extremidade?

Klanestro
fonte
2
Eu continuo tropeçando em posts antigos como esses e não consigo entender por que esse tipo de post sempre foi votado no passado, mas com certeza seria prejudicado e diminuído se esse for o post atual.
tnkh 25/05
6
Talvez tenha sido votado porque é uma pergunta que outras pessoas também têm. Não é esse o ponto?
Nora McDougall-Collins

Respostas:

74

Todas as respostas postadas até o momento estão corretas, um ponto de extremidade é simplesmente uma extremidade de um canal de comunicação. No caso do OAuth, há três pontos de extremidade com os quais você precisa se preocupar:

  1. URI de solicitação de credencial temporária (chamado URL do token de solicitação na especificação da comunidade OAuth 1.0a). Este é um URI ao qual você envia uma solicitação para obter um Token de Solicitação não autorizado do servidor / provedor de serviços.
  2. URI de autorização do proprietário do recurso (chamado URL de autorização do usuário na especificação da comunidade OAuth 1.0a). Este é um URI ao qual você direciona o usuário para autorizar um token de solicitação obtido do URI de solicitação de credencial temporária.
  3. URI de solicitação de token (chamado URL de token de acesso na especificação da comunidade OAuth 1.0a). Este é um URI ao qual você envia uma solicitação para trocar um Token de Solicitação autorizado por um Token de Acesso que pode ser usado para obter acesso a um Recurso Protegido.

Espero que ajude a esclarecer as coisas. Divirta-se aprendendo sobre o OAuth! Poste mais perguntas se tiver dificuldades para implementar um cliente OAuth.

Paul Osman
fonte
5
Por que não chamá-lo (isto é, o chamado "ponto final") de "URI base"? Existe uma diferença fundamental entre um "ponto final" e um "URI base"? Obrigado.
Retido
@Xlsx Depende da implementação. Um exemplo de solicitação pode ser GET "/ users? Name = admin" ou "/ users / admin". Você poderia fazer um ou outro ou ambos ou nenhum.
Burak
2
Não é útil, pois o OP solicitou "pontos de extremidade gerais", não especificamente o OAuth. Agora estou confusa.
madrugada
309

Vamos lá pessoal :) Nós poderíamos fazer isso de maneira mais simples, através de exemplos:

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

e quando colocado em um domínio, seria semelhante a:

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

Pode ser http ou https, usamos https no exemplo.

Além disso, o terminal pode ser diferente para diferentes métodos HTTP, por exemplo:

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

seria dois terminais diferentes - um para r etrieving (como em "c R ud" abreviatura), e a outra para o retorno Actualização do (como em "cr L d")

E isso é tudo, realmente simples assim!

Tomeg
fonte
25
Promovido por mencionar que diferentes métodos HTTP definem terminais separados.
Boyan Kushlev
3
Matthew 20:16 KJV - Assim os últimos serão os primeiros (..) :)
sobi3ch
2
É uma pena, o Stack Exchange não mostra essa resposta como primeira ou segunda resposta. Para mim, estava na lista e definitivamente a melhor, pois eu não sabia se todo um conjunto de ações e controladores era considerado um ponto final, ou uma única ação em um único controlador definia um ponto final. Essa resposta me disse que era a última.
Thorkil Værge
Tão lamentável que o OP não selecionou esta resposta, que é a melhor resposta.
1
@ Em geral, o ponto final é o que deve ser chamado por uma solicitação, o que você fornece como interface para os consumidores da API - o que você diz para eles usarem. Portanto, neste exemplo, sua implementação lida com dois pontos de extremidade (porque você forneceu ao usuário / consumidor da API duas maneiras de chamar alguma coisa). Mas acabei de escrever que é "geralmente" e se há alguém que insiste em chamar o endpoint um pouco diferente (por exemplo, no seu exemplo, alguém insistiria em dizer que esse é um endpoint), então você diz "OK, seja o que for, esses são apenas palavras! Estou feliz o suficiente por simplesmente nos entendermos "
Tomeg
43

É uma extremidade de um canal de comunicação; com frequência, isso seria representado como a URL de um servidor ou serviço.

David M
fonte
35

Um terminal é um padrão de URL usado para se comunicar com uma API.

SirLemuel
fonte
12

O ponto final , na linguagem de autenticação OpenID, é o URL para o qual você envia (POST) a solicitação de autenticação.

Trechos da API de autenticação do Google

Para obter o ponto de extremidade do Google OpenID, execute a descoberta enviando uma solicitação HTTP GET ou HEAD para https://www.google.com/accounts/o8/id . Ao usar um GET, recomendamos definir o cabeçalho Accept como "application / xrds + xml". O Google retorna um documento XRDS contendo um URL de terminal do provedor OpenID. O endereço do terminal é anotado como:

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

Depois de adquirir o terminal do Google, você poderá enviar solicitações de autenticação, especificando os parâmetros apropriados (disponíveis na página vinculada). Você se conecta ao terminal enviando uma solicitação para a URL ou fazendo uma solicitação HTTP POST.

Amarghosh
fonte
7

Um ponto de extremidade é o 'ponto de conexão' de um serviço, ferramenta ou aplicativo acessado por uma rede. No mundo do software, qualquer aplicativo de software que esteja executando e "escutando" as conexões usa um terminal como a "porta da frente". Quando você deseja se conectar ao aplicativo / serviço / ferramenta para trocar dados, conecte-se ao seu terminal

Justin Franks
fonte
4

O termo Endpoint foi usado inicialmente para serviços WCF. Mais tarde, embora essa palavra esteja sendo usada como sinônimo de recursos da API, o REST recomenda chamar esses URI (URI [s] que entendem verbos HTTP e seguem a arquitetura REST) ​​como "Recurso".

Em poucas palavras, um Recurso ou Ponto de Extremidade é um tipo de ponto de entrada para um aplicativo hospedado remotamente, permitindo que os usuários se comuniquem com ele via protocolo HTTP.

krishna kanth
fonte
4

O voto negativo não tem nada a ver comigo, mas a fonte (: Mesmo nenhuma razão indicada para isso.


Cada terminal é o local a partir do qual as APIs podem acessar os recursos necessários para executar sua função. Ou seja, o local em que as APIs enviam solicitações e a localização do recurso é chamado de terminal.

De uma boa fonte .

snr
fonte
2

O ponto final do termo é a URL focada na criação de uma solicitação. Veja os seguintes exemplos de diferentes pontos:

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

Eles podem acessar claramente a mesma fonte em uma determinada API.

ismael
fonte
1

Resposta curta: "um terminal é uma abstração que modela o final de um canal de mensagens através do qual um sistema pode enviar ou receber mensagens" ( Ibsen, 2010 ).


Ponto de extremidade versus URI (desambiguação)

O terminal não é o mesmo que um URI. Um motivo é porque um URI pode direcionar para diferentes pontos de extremidade, como um ponto final para GET, outro para POST e assim por diante. Exemplo:

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

Ponto de extremidade versus recurso (desambiguação)

O terminal não é o mesmo que um recurso. Um motivo é porque diferentes pontos de extremidade podem direcionar para o mesmo recurso. Exemplo:

@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
fonte
0

Simplificando, um ponto final é um final de um canal de comunicação. Quando uma API interage com outro sistema, os pontos de contato dessa comunicação são considerados pontos de extremidade. Para APIs, um terminal pode incluir uma URL de um servidor ou serviço. Cada terminal é o local a partir do qual as APIs podem acessar os recursos necessários para executar sua função.

As APIs funcionam usando 'solicitações' e 'respostas'. Quando uma API solicita informações de um aplicativo ou servidor da Web, ela recebe uma resposta. O local em que as APIs enviam solicitações e onde o recurso está localizado é chamado de terminal.

Consulte Mais informação...

Saikat
fonte