Jaka jest różnica między zasobem a punktem końcowym?

Słyszałem ,że zarówno "zasób", jak i "punkt końcowy" odnoszą się do tego samego. Wydaje się, że zasób jest nowszym terminem.

Jaka jest różnica między nimi? Czy "zasób" oznacza spokojny projekt?

Author: cchamberlain, 2015-06-01

4 answers

Scharakteryzowałbym zasób jako podzbiór punktu końcowego.

W REST zasób zazwyczaj odnosi się do jakiegoś obiektu lub zestawu obiektów, które są eksponowane w punkcie końcowym API.

/api/users/johnny

Punkt końcowy sam w sobie jest tylko odniesieniem do uri, który akceptuje żądania sieciowe, które mogą lub nie muszą być RESTful.

/services/service.asmx

Poniższe odniesienie z W3 metadata docs nie odnosi się do zasobów w ogólnym sensie, ale nadal nadaje znaczenie dwóm terminom odnosić się:

3.3 Terminologia

Service Endpoint: usługa internetowa, która jest adresowalna za pomocą WS-Addressing endpoint reference. W ramach tego specyfikacji, zakłada się, że głównym celem konsumenta jest interakcja z tą usługą.

Metadata Resource: wyspecjalizowana usługa internetowa, która jest adresowalna za pomocą albo WS-Addressing endpoint reference albo URL i którego głównym celem jest ujawnienie reprezentacji XML fragmentu metadane związane z punktem końcowym usługi.

Podczas gdy technicznie pojedyncza usługa internetowa może być zarówno " usługą Endpoint", a także "zasobem metadanych", do celów Wyjaśnienie różnych oczekiwań tych dwóch typów usług internetowych, ta specyfikacja omówi te dwa pojęcia (lub role) jako odrębne byty.

Inne referencje -

Co to jest punkt końcowy usługi internetowej?

Http://en.m.wikipedia.org/wiki/Web_resource http://en.m.wikipedia.org/wiki/Web_service

Odnosi się do zasobów jako punktów końcowych:

Http://developers.lyst.com/2015/02/20/1-to-1-relationships-and-subresources-in-rest-apis/

 48
Author: cchamberlain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:03:02

Terminy resource i endpoint są często używane synonimicznie. Ale w rzeczywistości nie oznaczają tego samego.

Termin endpointkoncentruje się na URL, który jest używany do złożenia żądania.
Termin resource skupia się na zbiorze danych, który jest zwracany przez żądanie.

Teraz, ten sam zasóbmoże być często dostępny przez wiele różnych punktów końcowych.
Również ten sam punkt końcowy może zwracać różne zasoby, w zależności od ciągu zapytania.

Zobaczmy kilka przykładów:

Różne punkty końcowe uzyskujące dostęp do tego samego zasobu

Spójrz na następujące przykłady różnych punktów końcowych :

/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3

Oczywiście wszyscy mogli uzyskać dostęp do samego tego samego zasobu w danym API.

Również istniejące API można całkowicie zmienić. Może to prowadzić do powstania nowych punktów końcowych, które uzyskałyby dostęp do tych samych starych zasobów przy użyciu zupełnie nowe i różne adresy URL:

/api/employees/3
/new_api/staff/3

Jeden punkt końcowy uzyskujący dostęp do różnych zasobów

Jeśli punkt końcowy zwraca kolekcję, można zaimplementować wyszukiwanie/filtrowanie/sortowanie za pomocą łańcuchów zapytań. W rezultacie wszystkie następujące adresy URL używają tego samego punktu końcowego (/api/companies), ale mogą zwracać różne zasoby (lub zbiory zasobów , które z definicji są zasobami same w sobie):

/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
 9
Author: Jpsy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-17 08:42:17

Według https://apiblueprint.org/documentation/examples/13-named-endpoints.html jest zasobem "ogólnym" miejscem przechowywania danego podmiotu - np. /customers/30654/orders, natomiast endpoint jest konkretnym działaniem (metodą HTTP) nad danym zasobem. Więc jeden zasób może mieć wiele punktów końcowych.

 2
Author: Dafka,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-08 16:53:39

Możliwe, że moja nie jest dobrą odpowiedzią, ale proszę bardzo.

Ponieważ pracuję bardziej z prawdziwie RESTful web services przez HTTP, próbowałem odciągnąć ludzi od używania terminu endpoint, ponieważ nie ma jasnej definicji, a zamiast tego używać języka REST, który jest zasoby i lokalizacje zasobów.

Moim zdaniem endpoint to termin TCP. Jest powiązany z HTTP, ponieważ część adresu URL identyfikuje serwer nasłuchujący.

Więc zasób nie jest nowszym określeniem, nie sądzę, myślę / align = "center" bgcolor = "# e0ffe0 " / cesarz chin / / align = center /

 1
Author: Luke Puplett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-04 11:03:47