Дизайн для службы обнаружения API

1

Я работаю над довольно большим API (390+), и я пытаюсь собрать всю информацию, необходимую команде документации для создания документов для проекта.

Я решил использовать JSON Hyperschema для представления этого.

Я создал обработчик аннотаций для поиска всей аннотации javax.ws.rs.Path из моего кода и захвата Javadoc, http-метода (из аннотации) и другой информации о параметрах, но у меня возникает проблема.

Гипер-схема рекомендует, и моя спецификация проекта требует, чтобы объекты, отправленные через API, должны были быть включены в схему в гипер-схеме. Обычно я использовал бы Джексона для этого. Однако, поскольку я в обработчике аннотации, который не входит в основной проект API, я не могу использовать ссылки на классы (например, User.class где пользователь является объектом в моем проекте API, а не в моем процессоре), не генерируя ошибок. (Это объясняется здесь).

Мой вопрос: каков наилучший способ преодоления этого ограничения? Я придумал один из способов, объясненный ниже, но я хочу, чтобы это было подключаемо к любой другой службе (в том же формате), чтобы документировать их.

В качестве решения этого, я думал, чтобы сломать генератор во время компиляции и времени выполнения. Во время компиляции я создавал гиперсимму JSON с заполнителями для ссылки на схемы объектов. Он также генерирует файл ресурсов с полными именами всех объектов.

Во время выполнения я планировал генерировать схемы для возвращаемых объектов, а затем вставлял ссылки на них в JSON.

ИМХО это решение не кажется очень "изящным". Кто-нибудь имеет представление о других способах достижения этого?

  • 0
    Какую реализацию JAX-RS вы используете? Взгляните на подход, который использует Джерси для генерации WADL ( jersey.java.net/documentation/latest/wadl.html ). Вы можете найти это полезным.
  • 0
    Это выглядит полезным для чтения ресурсов. Я думаю, что я могу изменить это для обработки ресурсов, но мне все еще нужно прочитать javadoc, который будет отсутствовать на этом этапе.
Показать ещё 1 комментарий
Теги:
annotations
hateoas

1 ответ

0

Я бы рекомендовал следующие проекты: -

jsonschema-hypermedia-support, которая подтверждает ввод описания ссылки здесь

ИЛИ Используйте Spring HATEOAS. Также смотрите этот поток stackoveflow о Restful API

Ещё вопросы

Сообщество Overcoder
Наверх
Меню