Co to jest punkt końcowy?

172

Czytałem o OAuth i ciągle mówię o punktach końcowych. Co to jest dokładnie punkt końcowy?

Klanestro
źródło
2
Ciągle natrafiam na stare posty, takie jak te i nie mogę zrozumieć, dlaczego tego rodzaju post jest zawsze głosowany za głosem w przeszłości, ale z pewnością byłby krytykowany i odrzucany, gdyby był to aktualny post.
tnkh
6
Może jest to głosowane za, ponieważ jest to pytanie, które mają również inni ludzie. Czy nie o to chodzi?
Nora McDougall-Collins

Odpowiedzi:

74

Wszystkie dotychczas zamieszczone odpowiedzi są poprawne, punkt końcowy to po prostu jeden koniec kanału komunikacji. W przypadku OAuth istnieją trzy punkty końcowe, którymi należy się zająć:

  1. Tymczasowy identyfikator URI żądania poświadczenia (zwany adresem URL tokenu żądania w specyfikacji społeczności OAuth 1.0a). Jest to identyfikator URI, do którego wysyłasz żądanie w celu uzyskania nieautoryzowanego tokenu żądania od serwera / dostawcy usług.
  2. Identyfikator URI autoryzacji właściciela zasobów (nazywany adresem URL autoryzacji użytkownika w specyfikacji społeczności OAuth 1.0a). To jest identyfikator URI, do którego kierujesz użytkownika w celu autoryzacji tokenu żądania uzyskanego z tymczasowego identyfikatora URI żądania poświadczenia.
  3. Identyfikator URI żądania tokenu (nazywany adresem URL tokenu dostępu w specyfikacji społeczności OAuth 1.0a). Jest to identyfikator URI, do którego wysyłasz żądanie w celu wymiany autoryzowanego tokenu żądania na token dostępu, który można następnie wykorzystać do uzyskania dostępu do chronionego zasobu.

Mam nadzieję, że pomoże to wyjaśnić. Miłej zabawy podczas nauki o OAuth! Opublikuj więcej pytań, jeśli napotkasz jakiekolwiek trudności z implementacją klienta OAuth.

Paul Osman
źródło
5
Dlaczego nie nazwać go (tj. Tak zwanym „punktem końcowym”) „podstawowym identyfikatorem URI”? Czy istnieje podstawowa różnica między „punktem końcowym” a „podstawowym identyfikatorem URI”? Dzięki.
Wstrzymane
@Xlsx To zależy od implementacji. Przykładowym żądaniem może być GET „/ users? Name = admin” lub „/ users / admin”. Możesz zrobić jedno lub drugie, albo jedno i drugie, albo nic.
Burak
2
Nieprzydatne, ponieważ OP poprosił o „ogólne punkty końcowe”, a nie konkretnie o OAuth. Jestem teraz zdezorientowany.
świt
311

No dalej :) Moglibyśmy to zrobić prościej na przykładach:

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

a po umieszczeniu pod domeną wyglądałoby to tak:

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

Może to być http lub https, w przykładzie używamy https.

Również punkt końcowy może być inny dla różnych metod HTTP, na przykład:

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

byłyby dwie różne punkty końcowe - jeden dla R etrieving (tak jak w „C R ud skrót”), a drugi do U pdating (tak jak w „cr U D”)

I to wszystko, naprawdę takie proste!

Tomeg
źródło
25
Głosowano za wzmiankę, że różne metody HTTP definiują oddzielne punkty końcowe.
Boyan Kushlev,
4
Matthew 20:16 KJV - Więc ostatni będzie pierwszy (..) :)
sobi3ch
2
Szkoda, Stack Exchange nie pokazuje tej odpowiedzi jako pierwszej lub drugiej odpowiedzi. Dla mnie był to na dole listy i zdecydowanie najlepszy, ponieważ nie wiedziałem, czy cały zestaw akcji i kontrolerów jest uważany za punkt końcowy, czy też pojedyncza akcja w pojedynczym kontrolerze definiuje punkt końcowy. Ta odpowiedź podpowiedziała mi, że to drugie.
Thorkil Værge,
Tak niefortunne, że OP nie wybrał tej odpowiedzi, która jest najlepszą odpowiedzią.
1
@Parth punkt końcowy jest generalnie tym, co powinno być wywołane przez żądanie, tym, co udostępniasz jako interfejs konsumentom API - co im każesz. Zatem w tym przykładzie Twoja implementacja obsługuje dwa punkty końcowe (ponieważ dostarczyłeś swojemu konsumentowi / użytkownikowi interfejsu API dwa sposoby wywołania czegoś). Ale właśnie napisałem, że jest "ogólnie" i jeśli jest jakaś osoba, która nalega na wywołanie punktu końcowego nieco inaczej (np. W twoim przykładzie ktoś nalegałby, aby powiedzieć, że to jest jeden punkt końcowy), to mówisz "OK, nieważne, to są tylko słowa! Jestem na tyle szczęśliwy, że po prostu się rozumiemy ”
Tomeg
43

To jeden koniec kanału komunikacyjnego, więc często będzie to reprezentowane jako adres URL serwera lub usługi.

David M.
źródło
35

Punkt końcowy to wzorzec adresu URL używany do komunikacji z interfejsem API.

SirLemuel
źródło
12

Punkt końcowy w żargonie uwierzytelniania OpenID to adres URL, na który wysyłasz (POST) żądanie uwierzytelnienia.

Fragmenty z interfejsu API uwierzytelniania Google

Aby uzyskać punkt końcowy Google OpenID, przeprowadź wykrywanie, wysyłając żądanie HTTP GET lub HEAD na adres https://www.google.com/accounts/o8/id . Używając GET, zalecamy ustawienie nagłówka Accept na „application / xrds + xml”. Google zwraca dokument XRDS zawierający adres URL punktu końcowego dostawcy OpenID. Adres punktu końcowego jest oznaczony adnotacją:

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

Po uzyskaniu punktu końcowego Google możesz wysyłać do niego żądania uwierzytelnienia, określając odpowiednie parametry (dostępne na połączonej stronie). Łączysz się z punktem końcowym, wysyłając żądanie na adres URL lub wykonując żądanie HTTP POST.

Amarghosh
źródło
7

Punkt końcowy to „punkt połączenia” usługi, narzędzia lub aplikacji, do których można uzyskać dostęp za pośrednictwem sieci. W świecie oprogramowania każda uruchomiona aplikacja „nasłuchująca” połączeń używa punktu końcowego jako „drzwi wejściowych”. Gdy chcesz połączyć się z aplikacją / usługą / narzędziem w celu wymiany danych, łączysz się z jej punktem końcowym

Justin Franks
źródło
4

Termin punkt końcowy był początkowo używany dla usług WCF. Później, mimo że to słowo jest używane jako synonim zasobów API, REST zaleca wywoływanie tych URI (URI [s], które rozumieją czasowniki HTTP i są zgodne z architekturą REST) ​​jako „Zasób”.

W skrócie, zasób lub punkt końcowy to rodzaj punktu wejścia do zdalnie hostowanej aplikacji, która umożliwia użytkownikom komunikowanie się z nią za pośrednictwem protokołu HTTP.

krishna kanth
źródło
4

Głosy przeciwne nie mają ze mną nic wspólnego, ale źródło (: Nawet nie wskazano powodu.


Każdy punkt końcowy to lokalizacja, z której interfejsy API mogą uzyskać dostęp do zasobów potrzebnych do wykonywania swoich funkcji. Oznacza to, że miejsce, w którym interfejsy API wysyłają żądania i gdzie znajduje się zasób, nazywane jest punktem końcowym.

Z fajnego źródła .

snr
źródło
2

Punktem końcowym terminu jest adres URL, który koncentruje się na tworzeniu żądania. Spójrz na następujące przykłady z różnych punktów:

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

Mogą wyraźnie uzyskać dostęp do tego samego źródła w danym API.

ismael
źródło
1

Krótka odpowiedź: „punkt końcowy to abstrakcja, która modeluje koniec kanału wiadomości, przez który system może wysyłać lub odbierać wiadomości” ( Ibsen, 2010 ).


Punkt końcowy vs URI (ujednoznacznienie)

Punkt końcowy nie jest tym samym, co identyfikator URI. Jednym z powodów jest to, że identyfikator URI może prowadzić do różnych punktów końcowych, takich jak punkt końcowy do GET, inny do POST i tak dalej. Przykład:

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

Punkt końcowy a zasób (ujednoznacznienie)

Punkt końcowy nie jest tym samym, co zasób. Jednym z powodów jest to, że różne punkty końcowe mogą prowadzić do tego samego zasobu. Przykład:

@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
źródło
0

Mówiąc najprościej, punkt końcowy to jeden koniec kanału komunikacyjnego. Gdy interfejs API współdziała z innym systemem, punkty styku tej komunikacji są traktowane jako punkty końcowe. W przypadku interfejsów API punkt końcowy może zawierać adres URL serwera lub usługi. Każdy punkt końcowy to lokalizacja, z której interfejsy API mogą uzyskać dostęp do zasobów potrzebnych do wykonywania swoich funkcji.

Interfejsy API działają przy użyciu „żądań” i „odpowiedzi”. Gdy interfejs API żąda informacji z aplikacji internetowej lub serwera WWW, otrzyma odpowiedź. Miejsce, w którym interfejsy API wysyłają żądania i gdzie znajduje się zasób, nazywane jest punktem końcowym.

Czytaj więcej...

Saikat
źródło