Я работаю над довольно большим API (390+), и я пытаюсь собрать всю информацию, необходимую команде документации для создания документов для проекта.
Я решил использовать JSON Hyperschema для представления этого.
Я создал обработчик аннотаций для поиска всей аннотации javax.ws.rs.Path
из моего кода и захвата Javadoc, http-метода (из аннотации) и другой информации о параметрах, но у меня возникает проблема.
Гипер-схема рекомендует, и моя спецификация проекта требует, чтобы объекты, отправленные через API, должны были быть включены в схему в гипер-схеме. Обычно я использовал бы Джексона для этого. Однако, поскольку я в обработчике аннотации, который не входит в основной проект API, я не могу использовать ссылки на классы (например, User.class
где пользователь является объектом в моем проекте API, а не в моем процессоре), не генерируя ошибок. (Это объясняется здесь).
Мой вопрос: каков наилучший способ преодоления этого ограничения? Я придумал один из способов, объясненный ниже, но я хочу, чтобы это было подключаемо к любой другой службе (в том же формате), чтобы документировать их.
В качестве решения этого, я думал, чтобы сломать генератор во время компиляции и времени выполнения. Во время компиляции я создавал гиперсимму JSON с заполнителями для ссылки на схемы объектов. Он также генерирует файл ресурсов с полными именами всех объектов.
Во время выполнения я планировал генерировать схемы для возвращаемых объектов, а затем вставлял ссылки на них в JSON.
ИМХО это решение не кажется очень "изящным". Кто-нибудь имеет представление о других способах достижения этого?
Я бы рекомендовал следующие проекты: -
jsonschema-hypermedia-support, которая подтверждает ввод описания ссылки здесь
ИЛИ Используйте Spring HATEOAS. Также смотрите этот поток stackoveflow о Restful API