На мой взгляд, это слабое звено концепции REST. Как архитектурный и интерфейсный стиль, REST является выдающимся, и работа, выполненная Роем Ф. и другими, значительно продвинула современное состояние. Но есть верхний предел того, что может быть передано (не просто представлено) стандартными типами мультимедиа.
Чтобы люди понимали и использовали ваш API REST-ish, им необходимо понимать , означающее данных. Существуют API, в которых типы мультимедиа рассказывают большую часть истории; например если у вас есть API для преобразования текста в речь, тип носителя для ввода текста - text / plain, а тип носителя для вывода - audio / mp4, то, возможно, кто-то, знакомый с предметом, может это сделать. Текстовый вход, аудио выход, вероятно, достаточно для продолжения в этом случае.
Но многие API не могут передать большую часть своего значения только с помощью типа носителя. Допустим, у вас есть API, который обрабатывает авиабилеты. Входы и выходы будут в основном данными. Типы медиа на входе и выходе каждого API могут быть application / json или application / xml, поэтому тип медиа не передает много информации. Итак, вы бы посмотрели на отдельные поля во входах и выходах. Может быть, есть поле под названием «цена». Это в долларах или пенни? USD или какая-то другая валюта? Я не знаю, как пользователь ответил бы на эти вопросы без (а) очень описательных имен, таких как "price_pennies_in_usd", или (b) документации. Не говоря уже о форматных соглашениях. Предоставляется ли номер счета с тире или без, буквы должны быть заглавными и т. Д. Не существует стандартного типа носителя, определяющего эти проблемы.
Одно дело, когда мы находимся в ситуациях, когда клиенту не нужно семантическое понимание данных. Это хорошо работает. Тот факт, что браузеры могут визуально отображать любой совместимый документ и взаимодействовать с любым совместимым ресурсом, действительно замечательный. Это в основном случай использования "СМИ".
Но это совсем другое, когда клиент (или фактически разработчик / пользователь, стоящий за клиентом) должен понимать семантику данных. ДАННЫЕ НЕ МЕДИА . Невозможно объяснить данные во всех их реальных значениях и тонкостях, кроме их документирования. Это вариант использования данных.
Чрезмерно академическое определение REST работает в случае использования СМИ. Он не работает и должен быть дополнен не чистыми, но полезными вещами, такими как документация, для других случаев использования.