REST, гипермедиа и HATEOAS

Вы продолжаете использовать это слово «REST». Я не думаю, что оно означает то, что вы думаете, что оно означает.

‒ Майк Амундсен, REST fest 2012 keynote.

Во-первых, отказ от ответственности. Название «Django REST framework» было принято еще в начале 2011 года и было выбрано просто для того, чтобы разработчики могли легко найти проект. Во всей документации мы стараемся использовать более простую и технически корректную терминологию «Web API».

Если вы серьезно относитесь к разработке Hypermedia API, вам следует обратиться к ресурсам за пределами этой документации, чтобы помочь в выборе дизайна.

Следующее относится к категории «обязательного чтения».

  • Диссертация Роя Филдинга - Architectural Styles and the Design of Network-based Software Architectures.

  • Запись в блоге Роя Филдинга «:doc:`REST APIs must be hypertext-driven <https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven>`».

  • Леонард Ричардсон и Майк Амундсен RESTful Web APIs.

  • Майка Амундсена Building Hypermedia APIs with HTML5 and Node.

  • Стив Клабник Designing Hypermedia APIs.

  • Richardson Maturity Model.

Более подробную информацию можно найти в статье Клабника Hypermedia API reading list.

Создание гипермедийных API с помощью REST-фреймворка

Фреймворк REST является независимым набором инструментов для создания Web API. Он помогает ориентироваться в создании хорошо связанных API и облегчает разработку соответствующих типов носителей, но не обеспечивает строгого соблюдения какого-либо определенного стиля оформления.

Что предоставляет фреймворк REST.

Само собой разумеется, что REST framework позволяет создавать гипермедийные API. Просматриваемый API, который он предлагает, построен на HTML - гипермедийном языке Интернета.

REST framework также включает serialization и parser компоненты, которые облегчают создание соответствующих типов медиа, hyperlinked relations для построения хорошо связанных систем, и большую поддержку content negotiation.

Чего не предоставляет REST-фреймворк.

Что REST framework не делает, так это не дает вам машиночитаемых гипермедийных форматов, таких как HAL или HTML microformats по умолчанию, или возможности автоматически создавать API в стиле HATEOAS, которые включают гипермедийные описания форм и семантически маркированные гиперссылки. Это потребует принятия решений о дизайне API, которые должны оставаться за рамками фреймворка.

Вернуться на верх