Почему медленное поглощение WADL?

Я исследовал WADL и удивляюсь, почему он не получил более широкого распространения?

С той скоростью, с которой кажется, что использование REST растет, я удивлен, что больше усилий по разработке не используют его.

Есть ли фундаментальный недостаток в его дизайне, он не подходит для культуры, которая обычно окружает веб-сервисы RESTful, или это что-то совсем другое?

2 ответа

Решение

Я думаю, что главная причина, почему WADL не набирает популярность, состоит в том, что он может вернуть к жизни все те проблемы, которые у нас были с SOAP и WSDL. Для меня аспект взаимодействия - это самый важный аспект веб-сервисов.
Следуя RESTful-способу использования чистых стандартов HTTP, вы получаете совместимость "бесплатно". Как только вам понадобится документ для описания услуг, появятся разные клиентские среды (или разные серверные среды), которые будут по-разному интерпретировать этот документ. После того, как разные фреймворки автоматически сгенерируют код из WADL, вам снова придется столкнуться с проблемами взаимодействия.

Отсутствие стандартов - это слабость и сила способа RESTful, давайте дадим шанс простому подходу. (хотя нам действительно нравится автоматическая генерация кода:-))

"ОТДЫХ на практике: гипермедиа и системная архитектура" Джима Уэббера, Саваса Парастатидиса и Яна Робинсона упоминают четыре проблемы:

  1. WADL предлагает статическое представление веб-приложения заранее, где Интернет использует медиатипы и ссылки для контрактов.
  2. Инструменты WADL обеспечивают тесную связь абстракций клиента и сервисной стороны. Ресурсы, рекламируемые из сервиса, становятся моделью домена клиента.
  3. WADL не предлагает никаких подсказок о порядке взаимодействия с ресурсами, которые он рекламирует.
  4. WADL часто дублирует метаданные, доступные из ресурсов.

Точки 1 и 2 являются аргументами динамических и статических клиентских привязок. При использовании WADL разработчику службы следует быть осторожным с обратной совместимостью схемы при изменении службы. Без WADL клиент должен быть гибким в интерпретации ответов.

Пункт 3 касается рабочего процесса. WADL не документирует порядок вызова API. Ответы как WADL, так и не WADL предлагают подсказки для упорядочения по ссылкам, если служба реализована в соответствии с параграфом HATEOAS.

Пункт 4 утверждает, что результаты HEAD и OPTIONS могут не соответствовать определению WADL. На практике редко используются эти методы.

Многие реализации REST быстрые и грязные. Легко реализовать службу REST только для моего использования. Когда мне нужно создать клиента для службы, предоставляемой другой командой, мне нужна документация. Чем формальнее, тем лучше. Кодируемая документация, такая как WADL, будет лучшей.

Мои интересы как клиента-разработчика:

  1. Как узнать параметры запроса и заголовки, которые поддерживаются?
  2. Как найти документацию о типе носителя для запроса или ответа? Даже если это зарегистрированный IANA тип носителя, мне все равно понадобятся схемы запроса / ответа.
Другие вопросы по тегам