Кто-нибудь использует Swagger Codegen или OpenAPI Generator SDK в производственной среде?
Swagger Code Generator может генерировать SDK на многих языках (перечислены ниже на странице проекта Github). Кто-нибудь использует какой-либо из автоматически сгенерированных SDK Swagger в производстве, как альфа/бета, так и GA, и если да, то какие организации и для каких языков?
Я сделал несколько поисков в Google и спросил. Хотя я нашел много примеров развернутого пользовательского интерфейса Swagger, я еще не нашел ни одного SDK Code Gen.
Страница проекта: https://github.com/swagger-api/swagger-codegen
Языки:
$ ls -1 modules/swagger-codegen/src/main/java/com/wordnik/swagger/codegen/languages/
AndroidClientCodegen.java
AsyncScalaClientCodegen.java
CSharpClientCodegen.java
JavaClientCodegen.java
JaxRSServerCodegen.java
NodeJSServerCodegen.java
ObjcClientCodegen.java
PhpClientCodegen.java
PythonClientCodegen.java
RubyClientCodegen.java
ScalaClientCodegen.java
ScalatraServerCodegen.java
SpringMVCServerCodegen.java
StaticDocCodegen.java
StaticHtmlGenerator.java
SwaggerGenerator.java
SwaggerYamlGenerator.java
TizenClientCodegen.java
Обновление - Отслеживание официального проекта SDK (июнь 2018)
Я отслеживаю идентифицируемые официальные SDK Codegen от более крупных организаций, чтобы лучше отслеживать принятие. Многие организации, которые считают себя использующими некоторые проекты codegen, не публикуют SDK в своих учетных записях GitHub.
Обновление - личный опыт (декабрь 2017)
Сейчас я активно использую Swagger Codegen для Go (2.2.3 - 2.3.1). Пока что мой опыт показывает, что он делает достойную работу, но для получения рабочего SDK может понадобиться множество ручных настроек, поэтому пакет/репозиторий GitHub все еще хорош. Вы можете увидеть некоторые проблемы в проблемах GitHub для SDK, которые я поддерживаю. Я также добавляю постобработку к файлам codegen/swagger_codegen_command.sh
в каждом репо.
Обновление - добавление OpenAPI Generator (июль 2018)
OpenAPI Generator является ответвлением Swagger Codegen, так что об этом сейчас упоминается.
Ответы
Ответ 1
Я выполнил поиск в Github и нашел несколько проектов (SDK), сгенерированных Swagger-Codegen.
Вот один пример: онлайн-конвертация API2 Swift SDK
Вы также можете обратиться к странице Swagger-Codegen Github для обсуждения варианта использования Swagger-Codegen.
ОБНОВЛЕНИЕ: Вот некоторые, но не все компании/проекты, использующие Swagger Codegen в производстве: https://github.com/swagger-api/swagger-codegen#companiesprojects-using-swagger-codegen
Примечание. По состоянию на июль 2017 года Swagger Codegen предлагает более 70 генераторов для API-клиента, заглушек сервера и документации API.
ОБНОВЛЕНИЕ: В мае 2018 года около 50 ведущих участников и создателей шаблонов Swagger Codegen решили раскошелиться на Swagger Codegen для поддержки управляемой сообществом версии OpenAPI Generator. Пожалуйста, обратитесь к Q & A для получения дополнительной информации.
Ответ 2
Как разработчик платформы и DevOps, я могу сказать, что успешно внедрил его в проект, который использует Dreamfactory API Automation, поскольку BaaS и API определяются swagger. Таким образом, SDK для мобильного приложения, а также внутренние приложения генерируются с помощью swagger-codegen. Мы столкнулись с несколькими ошибками в шаблоне swagger-codegen для наших языков, которые было довольно легко исправить. В целом это сэкономило много времени и уменьшает потенциальные источники ошибок.
Ответ 3
Я использовал его для загрузки нашего API на основе spring codegen и теперь использую его для изменения и добавления моделей домена и конечных точек API. Вы все равно должны изменить некоторые аспекты сгенерированных классов, но это делает рефакторинг очень безболезненным и мешает мне накладывать технический долг. Его чрезвычайно полезно иметь сгенерированный swagger-ui для ручного тестирования, и вы можете импортировать спецификацию в Postman, которые генерируют заглушки, чтобы у вас была хорошая стартовая точка и обзор TODO для написания ваших тестов.
Пока не использовали SDK. Я попытался использовать различные js-клиенты, но они не предоставили никаких преимуществ перед простыми библиотеками извлечения.
Я вижу большой потенциал в codegen для более сложных js-фреймворков вроде Angular или React + Redux, а также для автоматизации тестирования.