Фактические примеры для HATEOAS (REST-архитектура)

как все, возможно, заметили, существует множество поддельных/рудиментарных REST-API в дикой природе (которые реализуют HTTP-API и называют его REST, не следуя требованию гипертекста как двигателя-приложения, что привело к известному прозвищу Роя Т. Филдинга

Ответ 1

Это не реализация в смысле запуска кода, но мне очень нравится статья "" Как получить чашку кофе "в InfoQ, В нем описывается процесс заказа кофе в Starbucks в качестве протокола RESTful. Это выходит за рамки типичной статьи" ВСЕ - ресурс" REST и фокусируется на HATEOAS. Очень рекомендуется.

Ответ 2

Как насчет Sun Cloud API? Из введения:

API предполагает отсутствие конкретной структуры в пространстве URI. Отправной точкой является URI, предоставленный поставщиком облачных услуг, который идентифицирует само облако. Облачное представление содержит URI для других ресурсов в облаке, а также для операций, которые могут быть выполнены над ними (например, развертывание и запуск виртуальных машин).

Предыстория также может быть полезной.

Ответ 3

Netflix имеет REST API на основе HATEOAS, который включает ссылки как часть ресурсов.

Ответ 4

Является ли RESTfulness API Sun Cloud фактически адресованным в Roy 4-й точке:

API REST не должен определять фиксированные имена ресурсов или иерархии (очевидное соединение клиента и сервера). Серверы должны иметь свободу контролировать свое пространство имен. Вместо этого разрешите серверам указывать клиентам, как создавать соответствующие URI, например, в HTML-формах и шаблонах URI, определяя эти инструкции в типах медиа и связных отношениях. [Ошибка здесь подразумевает, что клиенты принимают структуру ресурсов из-за внеполосной информации, такой как стандарт для домена, который является ориентированным на данные эквивалентом функциональной связи RPC].

Пример 1 Исправлены имена ресурсов в определенном heirachy:

Из API Sun Cloud: "... представление VDC будет включать в себя представления о кластерах, которые его населяют, что, в свою очередь, включает представления виртуальных машин в каждом кластере".

Пример 2 внеполосная информация, такая как стандарт для домена:

У вас должно быть содержимое вики-страницы (внеполосная информация), чтобы знать, что "механизм связи ресурсов" для поля облачных ресурсов "uri" - GET.

Ответ 5

Я понял, что это было задано некоторое время назад, но я принял удар, демонстрируя "правильный" поток API REST для простого примера. Я пытался следовать правилам Roy для REST - возможно, это могло бы помочь: Пример API с помощью REST