Подтвердить что ты не робот

Что такое ресурсы REST?

Каковы ресурсы REST и как они связаны с именами ресурсов и представлениями ресурсов?

Я прочитал несколько статей по этому вопросу, но они были слишком абстрактными, и они оставили меня более смущенным, чем я был раньше.

Является ли следующий URL ресурсом? Если это так, каково имя этого ресурса и каково его представление?

http://api.example.com/users.json?length=2&offset=5

Ответ GET URL-адреса должен выглядеть примерно так:

[
   {
      id: 6,
      name: "John"
   },
   {
      id: 7,
      name: "Jane"
   }
]
4b9b3361

Ответ 1

Что такое ресурс?

Ресурс - это все, что достаточно важно для ссылки на вещь сама по себе. Если ваши пользователи могут "создать гипертекстовую ссылку к нему, делать или опровергать утверждения об этом, извлекать или кэшировать представление его, включают все или часть его посредством ссылки в другое представление, аннотировать его или выполнять другие операции над это", то вы должны сделать его ресурсом.

Обычно ресурс - это то, что может быть сохранено на компьютере и представленный как поток бит: документ, строка в базе данных или результат выполнения алгоритма. Ресурс может быть физическим объект, подобный яблоку, или абстрактное понятие, подобное мужеству, но (как хорошо видеть позже), представления таких ресурсов должны быть разочарование. Вот несколько возможных ресурсов:

  • Версия 1.0.3 версии программного обеспечения
  • Последняя версия выпуска программного обеспечения
  • Первая запись в блоге для 24 октября 2006 г.
  • Дорожная карта Литл-Рок, Арканзас
  • Некоторая информация о медузе
  • Каталог ресурсов, относящихся к медузе
  • Следующее простое число после 1024
  • Следующие пять простых чисел после 1024
  • Номера продаж для Q42004
  • Отношения между двумя знакомыми, Алисой и Бобем
  • Список открытых ошибок в базе данных ошибок

Текст из книги O'Reilly " RESTful Web Services".

Ответ 2

Причина, по которой статьи ресурсов REST являются абстрактными, объясняется тем, что концепция ресурса REST является абстрактной. Это в основном "независимо от того, к чему обращается адрес URL, который вы поставляете". Таким образом, в вашем примере ресурс будет списком двух пользователей, начиная со смещения 5 в некотором более крупном списке. Обратите внимание, что, как реализуется ресурс, вы не заботитесь о деталях, если только вы не пишете реализацию.

Является ли следующий URL ресурсом?

URL-адрес не является ресурсом, это метка, которая идентифицирует ресурс, это, если хотите, имя ресурса.

JSON - это представление ресурса.

Ответ 3

URL-адрес никогда не является ресурсом или его именем или его представлением.

URL-адрес указывает, где находится ресурс, и вы можете вызывать GET, POST, PUT, DELETE и т.д. для этого ресурса.

Данные, откликающиеся назад, являются ресурсами, в то время как форма данных является его представлением.

Скажем, ваш URL с заданными параметрами GET может выводить ресурс JSON - это представление JSON этого ресурса. Хотя с другим флагом в GET он может отвечать теми же данными в XML - это будет другое представление того же самого ресурса.

EDIT: из-за комментариев к OP и к моему ответу я добавляю еще одно объяснение.

Также имя ресурса считается именем script ', например. в этом случае это users.json, в то время как это имя ресурса самоописательно описывает представление ресурса - при вызове этого ресурса мы ожидаем, что ресурс находится в JSON, а при вызове, например. users.xml мы ожидаем данные в XML.

  • Когда я изменяю параметр offset в GET, ответ содержит другой набор данных - это новый ресурс или его представление?
  • Когда я определяю, какие столбцы возвращаются в ответ в GET, это другой ресурс или другое представление или?
  • Ну, здесь проблема и ответ ясны - мы по-прежнему вызываем один и тот же URL-адрес, ответы сервера с данными в той же форме (все же это JSON), данные по-прежнему содержат информацию о пользователях - только сама информация изменилась из-за нового параметра смещения. Таким образом, очевидно, что это все тот же ресурс с тем же представлением и тем же именем ресурса, что и раньше.
  • Вторая проблема может быть немного запутанной. Хотя мы называем один и тот же ресурс, хотя ресурс содержит одни и те же данные (только с предопределенным набором столбцов), и хотя данные находятся в одном представлении, это может показаться нам другим ресурсом. Но из-за пунктов в вышеприведенном абзаце это не разный ресурс или другое представление. Хотя набор данных содержит меньше информации, запрашивающая сторона (фильтрация этого набора данных) должна учитывать это и вести себя соответственно. Итак, снова: это тот же ресурс с тем же именем ресурса и тем же представлением ресурсов.

Ответ 4

Каковы ресурсы REST и как они связаны с именами ресурсов и представлениями ресурсов?

REST не означает намного больше, чем вы правильно используете HTTP-глаголы (GET, POST, PUT, DELETE и т.д.).

Является ли следующий URL ресурсом?

Все URL-адреса - это строки, которые указывают компьютеры, на которых может располагаться ресурс. (Отсюда и название: Uniform Resource Locator).

Ответ 6

Концептуально вы можете думать о ресурсе как о том, что доступно в Интернете, используя URL-адрес. Если вы придерживаетесь этого правила, http://api.example.com/users.json?length=2&offset=5 можно считать ресурсом

Ответ 7

Репрезентативная передача состояния (REST) ​​- это стиль архитектуры программного обеспечения для распределенных систем, таких как World Wide Web. Архитектуры REST-типа состоят из клиентов и серверов. Клиенты инициируют запросы к серверам; серверы обрабатывают запросы и возвращают соответствующие ответы. Запросы и ответы строятся вокруг передачи представлений ресурсов. Ресурсы представляют собой набор адресуемых объектов, в основном файлов и документов, связанных с использованием URL-адресов. Как правильно указано выше, Quentin, REST archiecture просто подразумевает, что вы будете использовать HTTP-глаголы GET/POST/PUT/DELETE...

Ответ 8

Вы указали только то, что представляется относительными параметрами, а не "идентификатор", который (или должен быть) конкретным. Помните, что операция должна быть идемпотентной (т.е. Повторяемой с тем же результатом).

Ответ 9

REST означает перенос состояния. Это метод передачи переменной информации из одного места в другое. Общим методом этого является использование JSON - способ форматирования ваших переменных, чтобы они могли передаваться без потери информации.

PHP, например, встроил поддержку JSON. Передача массива PHP в json_encode($array) выводит строку в формате, который вы опубликовали (что, кстати, действительно является ресурсом REST, поскольку оно дает вам переменные и информацию).

В PHP массив, который вы опубликовали, будет выглядеть как:

Array (

    [0]=>Array (
        ['id']=>6;
        ['name']=>'John';
    )
    [1]=>Array (
        ['id']=>7;
        ['name']=>'Jane';
    )

)

Ответ 10

Что такое REST?

REST - это стиль архитектуры, который обозначает передачу состояния (RE) State (S) (T).

Что такое ресурс REST?

Rest Resource - это данные, по которым мы хотим выполнять операции. Таким образом, эти данные могут присутствовать в базе данных в виде записей (таблиц) таблиц или в любой другой форме. Эта запись имеет уникальный идентификатор, с которым может быть идентифицирован как id для Employee.

Теперь, когда эти данные запрашиваются уникальным URL-адресом, например http://www.example.com/employees/123,so, в конечном итоге данные или запись, которые присутствуют в базе данных, будут преобразованы в JSON/XML/Обычный формат текста службой Rest Service и будет отправлен пользователю.

Таким образом, в основном, здесь происходит ПРЕДСТАВИТЕЛЬСТВО ГОСУДАРСТВЕННОГО ПЕРЕВОДА, так что состояние данных, представленных в базе данных, переносится в другой формат, который может быть JSON/XML или обычным текстом.

Итак, в этом случае 1 сотрудник представляет 1 ресурс, к которому можно получить доступ по уникальному URL-адресу, например http://www.example.com/employees/123

Если мы хотим получить список всех ресурсов (сотрудников), мы сделаем следующее: http://www.example.com/employees

Надеюсь, это поможет.

Ответ 11

REST

Этот архитектурный стиль был определен в глава 5 диссертации Роя Т. Филинджа.

REST - это манипуляция состояния ресурсов через их представления в верхней части безстоящей связи между клиентом и сервером. Это независимый от протокола архитектурный стиль, но на практике он обычно реализуется в верхней части протокола HTTP.

Ресурсы

Самым ресурсом является абстракция, и, по словам автора, ресурсом может быть любая информация, которую можно назвать. Объектами домена приложения (например, лицо, пользователь, счет-фактура, коллекция счетов-фактур и т.д.) Могут быть ресурсы. См. Следующую цитату из исследования Fielding:

5.2.1.1 Идентификаторы ресурсов и ресурсов

Ключевая абстракция информации в REST - это ресурс. Любая информация, которая может быть названа, может быть ресурсом: документ или изображение, временная служба (например, "сегодня погода в Лос-Анджелесе" ), коллекция других ресурсов, не виртуальный объект (например, человек) и т.д., Другими словами, любое понятие, которое может быть объектом гипертекстовой ссылки автора, должно соответствовать определению ресурса. Ресурс представляет собой концептуальное сопоставление с набором объектов, а не с сущностью, которая соответствует отображению в любой конкретный момент времени.

Точнее, ресурс R является временно изменяющейся функцией принадлежности M R (t), которая для времени t отображает набор сущностей или значений, которые эквивалентны. Значениями в наборе могут быть представления ресурсов и/или идентификаторы ресурсов. [...]

Представления ресурсов

Документ JSON представляет собой представление ресурсов, которое позволяет вам представлять состояние ресурса. Сервер может предоставлять разные представления для одного и того же ресурса. Например, используя документы XML и JSON. Клиент может использовать согласование контента для запроса различных представлений одного и того же ресурса.

Цитирующая полевая диссертация:

5.2.1.2 Представления

Компоненты REST выполняют действия над ресурсом, используя представление для захвата текущего или предполагаемого состояния этого ресурса и передачи этого представления между компонентами. Представление представляет собой последовательность байтов, плюс метаданные представления для описания этих байтов. Другие обычно используемые, но менее точные имена для представления включают в себя: документ, файл и объект сообщения HTTP, экземпляр или вариант.

Представление состоит из данных, метаданных, описывающих данные, и, иногда, метаданных для описания метаданных (обычно для проверки целостности сообщения). Метаданные находятся в форме пар имя-значение, где имя соответствует стандарту, который определяет структуру и семантику значений. Ответные сообщения могут включать как метаданные представления, так и метаданные ресурсов: информацию о ресурсе, не относящемся к представленному представлению. [...]

Через HTTP, заголовки запросов и ответов могут использоваться для обмена метаданными о представлении.

Идентификаторы ресурсов

URL-адрес идентификатора ресурса, который идентифицирует/находит ресурс на сервере.


Этот ответ также может быть проницательным.