IDL для интерфейса JSON REST/RPC

Мы разрабатываем довольно сложный REST API, в котором большая часть операций ввода-вывода представляет собой закодированные в JSON объекты с определенной структурой. Одна из проблем, которую мы обнаружили, заключается в том, чтобы документировать API таким образом, чтобы клиентам было проще публиковать правильные входные данные и обрабатывать выходные данные. Поскольку данные как ввода, так и вывода требуют довольно сложных объектов JSON, разработчики клиентов часто вносят ошибки, связанные со структурой объектов ввода-вывода.

Со всеми веб-API JSON в наши дни я надеялся на общее решение, но мне трудно его найти.Я просмотрел json-schema, которая является схемой проверки json, но и проект IETF, и реализации кажутся довольно незрелыми (хотя они существуют уже некоторое время, что не является хорошим знаком).

Несколько иной подход предлагается Protocol Buffersи Apache Avro, где схема не используется для проверки, но фактически требуется для кодирования/декодирования сообщения. Из этих двух у Avro довольно ограниченная документация и реализации. ProtoBuf кажется лучше, но я не уверен, действительно ли это подходит для использования в браузере для вызова API JSON?

Теперь я начинаю сомневаться, правильно ли я смотрю на это. Существуют ли другие методы, позволяющие сделать мой API немного более строго типизированным? Или формальное описание JSON REST/RPC API противоречит цели использования JSON?

Изменить: через 6 месяцев после этой темы мы нашли мангуста, что очень близко к тому, что мы искали.

13
задан Jeroen 9 August 2012 в 20:57
поделиться