2017-01-09 2 views
0

Мне поручено создать слой в Java/Spring, который потребляет веб-службы у нескольких разных поставщиков. Эти службы определяют конкретные компоненты запроса, но конечные точки не публикуют информацию XSD.Использование API RESTful в Java, генерирование артефактов.

Что было бы лучшим способом генерировать артефакты, необходимые для использования этих услуг? Кажется, что создание наших собственных объектов запроса - не лучший способ сделать что-то.

ответ

2

Услуги REST не предлагают XSD в качестве WSDL традиционной службы SOAP. Некоторые структуры REST предлагают WADL, или пользователь Swagger.io может описать услугу или предоставить документацию, такую ​​как Spring/Boots.

Если такой документации нет, и вы не можете получить исходный код для системы, с которой вы интегрируетесь, я рекомендую вам создать собственный набор Java POJO, чтобы вы могли взаимодействовать с сервисом типичным образом , Я сделал это для нескольких систем, которые предоставляют (онлайн) документально оформленные службы REST, но не предоставляют набор DTO, который вы можете использовать при их использовании.

+0

Спасибо. Это маршрут, который я решил пойти. Хотя я не опубликовал, мне были предоставлены внутренние файлы XSD для каждой службы, и я использую jaxb2-maven-plugin для создания этих артефактов. –

+0

Если у вас XSD, вы должны использовать инструмент генерации кода (jaxb2-maven-plugin) для создания классов. Имейте в виду, что генерация кода может оставить аннотацию @WebServiceClient внутри вашего кода, это будет иметь эффект, если вы развернете на сервере JavaEE. –

+0

Спасибо. Проблема, с которой я сейчас сталкиваюсь, - это конфликты имен в некоторых файлах XSD, в результате чего генерация терпит неудачу. Я обнаружил, что могу настроить несколько схем, но с таким количеством XSD-файлов это кажется необоснованным. Есть ли способ для каждого сгенерированного класса XSD быть помещенным в пространство за пределами аргумента ? –