Кто-нибудь использует 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
файлы в каждом репо.
- https://github.com/grokify/go-aha
- https://github.com/grokify/go-ringcentral
- https://github.com/grokify/go-visa
- https://github.com/grokify/go-voicebase-v3
Обновление - добавление OpenAPI Generator (июль 2018)
OpenAPI Generator - это форк Swagger Codegen, так что об этом сейчас упоминается.
4 ответа
Я выполнил поиск в Github и нашел несколько проектов (SDK), сгенерированных Swagger-Codegen.
Вот один пример: онлайн-конвертация API2 Swift SDK
Вы также можете обратиться к странице Swagger-Codegen Github для обсуждения варианта использования Swagger-Codegen.
ОБНОВЛЕНИЕ: Вот некоторые, но не все компании / проекты, использующие Swagger Codegen в производстве: https://github.com/swagger-api/swagger-codegen
Примечание. По состоянию на июль 2017 года Swagger Codegen предлагает более 70 генераторов для API-клиента, заглушек сервера и документации API.
Как разработчик платформы и DevOps, я могу сказать, что успешно внедрил его в проект, который использует Dreamfactory API Automation, поскольку BaaS и API определяются swagger. Таким образом, SDK для мобильного приложения, а также внутренние приложения генерируются с помощью swagger-codegen. Мы обнаружили несколько ошибок в шаблоне swagger-codegen для наших языков, которые было довольно легко исправить. В целом это сэкономило много времени и уменьшает потенциальные источники ошибок.
Я использовал его для начальной загрузки нашего API на основе Spring Codegen и теперь использую его для изменения и добавления моделей доменов и конечных точек API. Вы все еще должны изменить некоторые аспекты сгенерированных классов, но это делает рефакторинг очень безболезненным и мешает мне накапливать технические долги. Крайне полезно иметь сгенерированный пользовательский интерфейс для ручного тестирования, и вы можете импортировать спецификацию в Postman, которая генерирует заглушки, чтобы у вас была хорошая отправная точка и обзор TODO для написания ваших тестов.
Пока не использовали SDK. Я пытался использовать различные js-клиенты, но они не давали никаких преимуществ перед простыми библиотеками выборки.
Я вижу большой потенциал в codegen для более сложных сред js, таких как Angular или React + Redux, а также для автоматизации тестирования.
Square использует его в производстве. Вот их статья об этом, и в ней есть ссылки на их настройку GitHub Swagger, результирующие API и многое другое.
https://swagger.io/blog/api-strategy/how-square-makes-its-sdks/
В этой статье упоминаются следующие SDK:
Вы можете увидеть все шаблоны и файлы конфигурации, которые поддерживают SDK {Java, PHP, C#, Python, Ruby, JavaScript}, в том же репозитории, что и наш файл спецификации: Connect-API-Specification.
Вот некоторые из их SDK: