Я слышал, что и «ресурс», и «конечная точка» относятся к одному и тому же. Кажется, что ресурс - новый термин.
В чем разница между ними? Подразумевает ли «ресурс» 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. Пример и схема ответа В примере ответа показан пример ответа из примера запроса; схема ответа определяет все возможные элементы в ответе.
Источник- Ссылка на ссылку