Фактические примеры для HATEOAS (REST-architecture) [закрыто]


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

Я не смог найти никаких практических примеров действительно гипертекстовой REST-реализации вместе с соответствующим конкретным приложением определения типов носителей для переходов состояний.

есть ли публично доступные примеры таких реализаций?

5 134

5 ответов:

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

как о Sun Cloud API? Из введения:

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

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

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

не является ли RESTfulness API Sun Cloud на самом деле адресован в 4-м пункте Роя:

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

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

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

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

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

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