Является ли каждый API, созданный с помощью Django Rest Framework, REST API?
Мне просто интересно, означает ли тот факт, что API создан с помощью DRF, что это действительно Rest Api? Или есть что-то важное, о чем нужно помнить, чтобы сделать его действительно REST?
Когда я общаюсь с конечными точками, я отправляю JWT в запросах, поэтому я считаю, что это делает их Stateless. Соглашения об именовании для конечных точек Rest, вероятно, тоже важны. Но есть ли что-то еще, что нужно помнить, чтобы я мог назвать свой Api Rest Api?
Я цитирую из https://www.redhat.com/en/topics/api/what-is-a-rest-api:
" Для того чтобы API считался RESTful, он должен соответствовать следующим критериям:
- Архитектура клиент-сервер, состоящая из клиентов, серверов и ресурсов, с управлением запросами через HTTP.
- Бесстационарная связь клиент-сервер, то есть никакая информация о клиенте не сохраняется между запросами get, и каждый запрос является отдельным и не связанным.
- Кэшируемые данные, которые упрощают взаимодействие клиент-сервер.
- Единый интерфейс между компонентами, чтобы информация передавалась в стандартной форме. Это требует, чтобы:
- запрашиваемые ресурсы были идентифицируемы и отделены от представлений, отправленных клиенту.
- ресурсами клиент может манипулировать через полученное представление, поскольку представление содержит достаточно информации для этого. самоописательные сообщения, возвращаемые клиенту, содержат достаточно информации для описания того, как клиент должен его обработать.
- доступен гипертекст/гипермедиа, что означает, что после доступа к ресурсу клиент должен иметь возможность использовать гиперссылки для поиска всех других доступных в данный момент действий, которые он может предпринять.
- Многоуровневая система, которая организует каждый тип серверов (отвечающих за безопасность, балансировку нагрузки и т.д.), участвующих в получении запрашиваемой информации, в иерархию, невидимую для клиента.
- Код по требованию (опционально): возможность посылать исполняемый код с сервера на клиент по запросу, расширяя функциональность клиента. "
У Роя Филдинга есть очень подробный ответ (от 2008 года) о том, что не следует называть REST API здесь https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven.
Последняя и, возможно, самая важная вещь для вашего ответа - это собственный ответ DRF на ваш вопрос, который вы можете найти здесь:
Где они четко заявляют, что DRF - это инструментарий веб-апи, который поможет вам создать гипермедийный API, но не принуждает к его использованию.