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?


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.


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!


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.


35

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


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.


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


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.


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 .


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.


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

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...

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.