Текущая спецификация Swagger утверждает, что Swagger используется для описания и документирования RESTful API. Я думаю, что это не так, скорее я думаю, что Swagger полезен для простого описания HTTP API по нескольким причинам:
- В спецификации Swagger есть такие элементы, как
Path
иDefinition
, но они явно не соответствуют элементы данных REST, такие как ресурсы, представления и типы мультимедиа. Я считаю, что для эффективного описания REST API вам необходимо определить явные элементы данных REST в контексте вашего API. - Гиперссылки не являются объектами первого класса в спецификации Swagger, и поэтому гиперссылки и их критический описательный атрибут, отношение ссылки, могут быть легко опущены. На самом деле гиперссылки вообще не упоминаются.
- Пути HTTP находятся впереди и в центре, что кажется явным нарушением точки зрения Филдинга, сделанной в его знаменитом запись в блоге:
REST API не должен определять фиксированные имена ресурсов или иерархии (очевидная связь клиента и сервера).
По сути, я думаю, что API, определенные с использованием спецификации Swagger 2.0, приводят вас к разработке API, который не ограничен HATEOAS, что нарушит REST.
Это правильно или я что-то упускаю?