Słyszałem, że „zasób” i „punkt końcowy” odnoszą się do tej samej rzeczy. Wydaje się, że zasób to nowszy termin.
Jaka jest różnica między nimi? Czy „zasób” oznacza projekt zgodny z REST?
Zasób to podzbiór Endpoint zgodny ze specyfikacją REST .
Punkt końcowy sam w sobie jest lokalizacją, w której można uzyskać dostęp do usługi:
https://www.google.com # Serves HTML
8.8.8.8 # Serves DNS
/services/service.asmx # Serves an ASP.NET Web Service
Zasób dotyczy serwowane jeden lub więcej rzeczowników, reprezentowane w przestrzeni nazw mody, ponieważ jest łatwy do zrozumienia dla ludzi:
/api/users/johnny # Look up johnny from a users collection.
/v2/books/1234 # Get book with ID 1234 in API v2 schema.
Wszystkie powyższe można uznać za punkty końcowe usługi, ale tylko dolna grupa byłaby uważana za zasoby, mówiąc REST. Najwyższa grupa nie jest wyrazista w zakresie treści, które dostarcza.
Żądanie REST jest jak zdanie złożone z rzeczowników (zasobów) i czasowników (metody HTTP):
GET
(metoda) użytkownik o nazwie johnny
(zasób).DELETE
(metoda) książka o id 1234
(zasób).Punkt końcowy zwykle odnosi się do usługi, ale zasób może oznaczać wiele rzeczy. Oto kilka przykładów zasobów zależnych od kontekstu, w którym są używane.
Coś, co może Ci pomóc:
Biblioteka była cennym zasobem i często z niej korzystał.
Zasoby to naturalne substancje, takie jak woda i drewno, które są cenne dla życia:
[pl] Ziemia ma ograniczone zasoby i jeśli ich nie poddajemy recyklingowi, zużywamy je.
Zasoby to również wartościowe rzeczy, takie jak pieniądze lub dobytek, których możesz użyć, gdy ich potrzebujesz:
[pl] Rząd nie ma środków na zatrudnienie odpowiedniej liczby nauczycieli.
Termin zasób z definicji ma wiele niuansów. Wszystko zależy od kontekstu, w którym jest używany.
Terminy zasób i punkt końcowy są często używane jako synonimy. Ale w rzeczywistości nie mają na myśli tego samego.
Termin punkt końcowy koncentruje się na adresie URL, który jest używany do wysyłania żądania.
Termin zasób koncentruje się na zestawie danych zwracanym przez żądanie.
Teraz ten sam zasób moż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 :
Oczywiście wszyscy mogliby uzyskać dostęp do tego samego zasobu w danym API.
Również istniejący interfejs API można całkowicie zmienić. Może to prowadzić do nowych punktów końcowych, które będą miały dostęp do tych samych starych zasobów przy użyciu zupełnie nowych i różnych adresów URL:
Jeden punkt końcowy uzyskujący dostęp do różnych zasobów
Jeśli punkt końcowy zwraca kolekcję, możesz zaimplementować wyszukiwanie / filtrowanie / sortowanie za pomocą ciągów zapytań. W rezultacie wszystkie poniższe adresy URL używają tego samego punktu końcowego (
/api/companies
), ale mogą zwracać różne zasoby (lub kolekcje zasobów , które z definicji są zasobami same w sobie):źródło
Prawdopodobnie moja nie jest świetną odpowiedzią, ale proszę bardzo.
Odkąd pracowałem bardziej z prawdziwie RESTful usługami sieciowymi przez HTTP, próbowałem odciągnąć ludzi od używania terminu punkt końcowy, ponieważ nie ma on jasnej definicji, i zamiast tego używam języka REST, który jest zasobami i lokalizacjami zasobów.
Moim zdaniem punkt końcowy to termin TCP. Jest powiązany z protokołem HTTP, ponieważ część adresu URL identyfikuje serwer nasłuchujący.
Więc zasób nie jest nowszym terminem, nie sądzę, myślę, że punkt końcowy był zawsze przywłaszczony i zdajemy sobie z tego sprawę, gdy zaczynamy myśleć o REST jako stylu API.
Edytować
Pisałem o tym na blogu.
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
źródło
Według https://apiblueprint.org/documentation/examples/13-named-endpoints.html to zasób to „ogólne” miejsce przechowywania danego podmiotu - np. / Customers / 30654 / orders, natomiast punktem końcowym jest konkretne działanie (Metoda HTTP) nad danym zasobem. Zatem jeden zasób może mieć wiele punktów końcowych.
źródło
Rozważ serwer, na którym znajdują się informacje o użytkownikach, misjach i ich punktach nagród.
Źródło: punkty końcowe interfejsu API a zasoby
źródło
1. Opis zasobu „Zasoby” odnoszą się do informacji zwracanych przez API.
2. Punkty końcowe i metody Punkty końcowe wskazują sposób uzyskiwania dostępu do zasobu, podczas gdy metoda wskazuje dozwolone interakcje (takie jak GET, POST lub DELETE) z zasobem.
Informacje dodatkowe: 3. Parametry Parametry to opcje, które można przekazać z punktem końcowym (takie jak określenie formatu odpowiedzi lub zwracanej kwoty), aby wpłynąć na odpowiedź.
4. Przykład żądania Przykład żądania zawiera przykładowe żądanie korzystające z punktu końcowego, przedstawiające skonfigurowane parametry.
5. Przykład i schemat odpowiedzi Przykład odpowiedzi przedstawia przykładową odpowiedź z przykładu żądania; schemat odpowiedzi definiuje wszystkie możliwe elementy odpowiedzi.
Źródło- odnośnik
źródło