Я слышал, как "ресурс" и "конечная точка" ссылаются на одно и то же. Кажется, что ресурс - это более новый термин.
В чем разница между ними? "Ресурс" подразумевает проект RESTful?
Я слышал, как "ресурс" и "конечная точка" ссылаются на одно и то же. Кажется, что ресурс - это более новый термин.
В чем разница между ними? "Ресурс" подразумевает проект RESTful?
Ресурс является подмножеством RESTful конечной точки.
Конечная точка сама по себе является местом, где можно получить доступ к услуге:
https://www.google.com # Serves HTML
8.8.8.8 # Serves DNS
/services/service.asmx # Serves an ASP.NET Web Service
Ресурс относится к одному или нескольким существительным, представленным в пространстве имен, потому что людям легко понять:
/api/users/johnny # Look up johnny from a users collection.
/v2/books/1234 # Get book with ID 1234 in API v2 schema.
Все вышеперечисленное можно рассматривать как конечные точки службы, но только нижняя группа будет рассматриваться как ресурсы, если говорить REST. Верхняя группа не выразительна в отношении содержания, которое она предоставляет.
Запрос REST похож на предложение, состоящее из существительных (ресурсов) и глаголов (методов HTTP):
GET
(метод) пользователь с именем johnny
(ресурс).DELETE
(метод) книга с идентификатором 1234
(ресурс).Конечная точка обычно относится к услуге, но ресурс может означать много вещей. Вот несколько примеров ресурсов, которые зависят от контекста, в котором они используются.
Что-то, что может помочь вам:
Библиотека была ценным ресурсом, и он часто использовал ее.
Ресурсы природные вещества, такие как вода и древесина, которые Ценный в поддержке жизни:
[pl] Земля имеет ограниченные ресурсы, и если мы не будем их перерабатывать мы используем их.
Ресурсы - это также ценные вещи, такие как деньги или имущество, которые вы можете использовать, когда они вам нужны:
[pl] У правительства нет ресурсов, чтобы нанимать ряд учителя нужны.
Термин ресурс по определению имеет много нюансов. Все зависит от контекста, в котором он используется.
Термины ресурс и конечная точка часто используются как синонимы. Но на самом деле они не означают одно и то же.
Термин конечная точка ориентирован на URL, который используется для отправки запроса.
Термин ресурс ориентирован на набор данных, который возвращается запросом.
Теперь к одному и тому же ресурсу часто могут обращаться разные конечные точки.
Также одна и та же конечная точка может возвращать разные ресурсы в зависимости от строки запроса.
Давайте посмотрим несколько примеров:
Посмотрите на следующие примеры различных конечных точек:
/api/companies/5/employees/3
/api/v2/companies/5/employees/3
/api/employees/3
Очевидно, что все они могут получить доступ к одному и тому же ресурсу в данном API.
Также существующий API может быть полностью изменен. Это может привести к появлению новых конечных точек, которые будут получать доступ к тем же старым ресурсам, используя совершенно новые и разные URL-адреса:
/api/employees/3
/new_api/staff/3
Если ваша конечная точка возвращает коллекцию, вы можете реализовать поиск/фильтрацию/сортировку с использованием строк запроса. В результате все следующие URL-адреса используют одну и ту же конечную точку (/api/companies
), но они могут возвращать разные ресурсы (или коллекции ресурсов, которые по определению сами являются ресурсами):
/api/companies
/api/companies?sort=name_asc
/api/companies?location=germany
/api/companies?search=siemens
Возможно, мой не очень хороший ответ, но здесь идет.
С тех пор как я больше работал с действительно веб-сервисами RESTful через HTTP, я пытался отвлечь людей от использования термина конечная точка, поскольку он не имеет четкого определения, и вместо этого использовал язык REST, который представляет собой ресурсы и расположения ресурсов.
На мой взгляд, конечная точка - это термин TCP. Это связано с HTTP, потому что часть URL идентифицирует прослушивающий сервер.
Так что ресурс - это не новый термин, я не думаю, я думаю, что конечная точка всегда присваивалась не по назначению, и мы понимаем это, когда мы разбираемся с REST как стилем API.
редактировать
Я писал об этом в блоге.
https://medium.com/@lukepuplett/stop-saying-endpoints-92c19e33e819
Согласно https://apiblueprint.org/documentation/examples/13-named-endpoints.html ресурс является "общим" местом хранения данной сущности - например, /Customers/30654/orders, тогда как конечная точка - это конкретное действие (HTTP-метод) над данным ресурсом. Таким образом, один ресурс может иметь несколько конечных точек.
Рассмотрим сервер, на котором есть информация о пользователях, миссиях и их бонусных баллах.
Источник: Конечные точки API против ресурсов
1. Описание ресурса "Ресурсы" относится к информации, возвращаемой API.
2. Конечные точки и методы Конечные точки указывают, как вы обращаетесь к ресурсу, а метод указывает разрешенные взаимодействия (такие как GET, POST или DELETE) с ресурсом.
Дополнительная информация: 3. Параметры Параметры - это параметры, которые вы можете передать конечной точке (например, указать формат ответа или возвращаемую сумму), чтобы повлиять на ответ.
4. Пример запроса Пример запроса включает в себя пример запроса с использованием конечной точки, показывающий некоторые настроенные параметры.
5. Пример ответа и схема Пример ответа показывает пример ответа из примера запроса; Схема ответа определяет все возможные элементы в ответе.
Source- Ссылка