Мы разрабатываем довольно сложный REST API, в котором большая часть ввода-вывода представляет собой JSON-кодированные объекты со специфической структурой. Одна из проблем, которую мы обнаружили, заключается в том, чтобы документировать API таким образом, чтобы клиентам было легче отправлять правильные данные ввода и обработки. Поскольку данные как ввода, так и вывода требуют довольно сложных объектов JSON, разработчики клиентов часто вводят ошибки, связанные со структурой объектов ввода/вывода.
Со всеми веб-интерфейсами JSON в эти дни я бы надеялся на общее решение, но мне трудно найти его. Я рассмотрел json-schema, который является схемой проверки json, но оба проекта и реализации IETF кажутся довольно незрелыми (хотя они уже давно существуют, что не является хорошим знаком).
Несколько иной подход предлагается Буферами протоколов и Apache Avro, где схема не используется для проверки подлинности, но на самом деле требуется для кодирования/декодирования сообщения. Из этих 2 Avro, похоже, имеет довольно ограниченную документацию и реализации. ProtoBuf кажется лучше, но я не уверен, действительно ли это подходит для использования в браузере для вызова JSON api?
Теперь я начинаю сомневаться, смотрю ли я на это под прямым углом. Существуют ли другие методы, чтобы сделать мой API немного более сильным? Или это формальное описание API JSON REST/RPC, которое поражает цель использования JSON?
Изменить: через 6 месяцев после этой темы мы обнаружили mongoose, что очень близко к тому, что мы искали.