Генерация клиентов Swagger

У меня есть проект на основе npm, и я хочу внедрить в него клиент REST API на основе swagger. Моя идея состоит в том, чтобы иметь файл описания API yaml и генерировать клиент на этапе сборки. Есть ли какие-нибудь хорошо известные подходы к этому? Я нашел только swagger-js-codegen, но я не совсем понимаю, как это интегрировать в процесс сборки.


person dmitrievanthony    schedule 30.09.2016    source источник


Ответы (1)


Учитывая, что ваш REST API задокументирован в спецификации Swagger/OpenAPI, вы можете просто использовать curl (или другие http-инструменты) для отправки HTTP-запроса для создания клиентов API в рамках процесса сборки. Пример запроса curl для создания ruby-клиента для http://petstore.swagger.io/v2/swagger.json выглядит следующим образом:

curl -X POST -H "content-type:application/json" -d '{"swaggerUrl":"http://petstore.swagger.io/v2/swagger.json"}' https://generator.swagger.io/api/gen/clients/ruby

См. https://github.com/swagger-api/swagger-codegen#online-generators для получения дополнительной информации.

ОБНОВЛЕНИЕ: в мае 2018 года около 50 ведущих участников и создателей шаблонов Swagger Codegen решили разветвить Swagger Codegen, чтобы поддерживать управляемую сообществом версию под названием Генератор OpenAPI. Дополнительные сведения см. в разделе Q&A.

person William Cheng    schedule 01.10.2016
comment
Есть ли способ сделать это, не заходя в интернет? Наша операционная группа не слишком заинтересована в том, чтобы полагаться на третью сторону, такую ​​​​как swagger.io, для прохождения нашей CI-сборки. - person Yasammez; 22.03.2018
comment
Вместо этого вы можете загрузить JAR, как указано в README проекта: github.com/swagger-api/swagger -codegen - person William Cheng; 22.03.2018