REST API仕様からAPIクライアントやスタブサーバを自動生成する「OpenAPI Generator」オープンソースで公開。Swagger Codegenからのフォーク
RESTful APIの仕様を基に、APIクライアント用SDK、APIクライアントのテスト用にAPIサーバのように振る舞ってくれるスタブサーバ、Webサーバのコンフィグレーション、ドキュメントなどを自動生成してくれる「OpenAPI Generator」がオープンソースとして公開されました。
RESTful API仕様の記述フォーマットは、2015年にマイクロソフトやGoogle、IBMらが立ち上げた「Open API Initiative」が提唱する「OpenAPI Specification」が事実上の業界標準となっており、OpenAPI GeneratorもこのOpenAPI Specificationを基に開発されています。
OpenAPI Generatorは、このOpenAPI Specificationに従ったAPI仕様を基に、ActionScript、Ada、Apex、Bash、C#、Clojure、Dart、Elixir、Elm、Eiffel、Erlang、Go、Groovy、Haskell、Kotlin、Lua、Node.js、Objective-C、Perl、PHP、PowerShell、Python、R、Ruby、Rust、Scala、Swift、Typescriptなど多様な言語でのAPIクライアントのコードを生成。
Ada、C#、C++、Erlang、Go、Haskell、Java、Kotlin、PHP、Python、Node.js、Ruby、Rust、Scalaなどに対応したスタブサーバのコードも生成。
さらにApache 2に対応したコンフィグレーションファイルおよびHTMLとConfluence Wikiに対応したドキュメントなどを生成する機能も備えています。
OpenAPI GeneratorはSwagger Generatorからのフォーク
OpenAPI Specificationを基にAPIクライアントやスタブサーバのコードを生成するオープンソースプロジェクトとして、以前からSwagger Codegenがありました。今回公開されたOpenAPI Generator」は、このSwagger Codegenをフォークして始められたプロジェクトです。
Swagger Codegenは、OpenAPI Specificationのベースとなったオープンソースプロジェクト「Swagger」の一部であり、いわばOpenAPI Specificationの直系プロジェクトです。そして現在Swaggerは、その開発元であったReverb Technologies社を2015年3月に買収したSmartBear社が中心となって開発しています。
なぜそこからフォークされたOpenAPI Generatorのプロジェクトがスタートしたのか、OpenAPI Generatorの「Question and Answer」にあるOpenAPI Generator側の主張としては、Swagger Codegen 3.0の開発において主要なコミュニティメンバーの主張がSmartBearに受け入れられなかったためだとしています。
例えば、Swagger Codegen 3.0の開発で次のようなことが行われたと説明されています。下記は抜粋した上で訳したもの。
Swagger Codegen 3.0.0 beta contains too many breaking changes
Swagger Codegen 3.0.0ベータ版は多くの後方互換性を破壊する変更が行われた。
Changes made directly to 3.0.0 branch without reviews or tests
変更はレビューやテストもなく3.0.0ブランチに対して直接行われた
Reviews of code changes in the 3.0.0 branch highlighted a lot of code block removal without any reason. This might produce regressions for edge cases discovered previously.
3.0.0ブランチの変更されたコードをレビューすると、理由もなく多くのコードが消去されていることが判明した。これによって過去に修正されていた細かいケースにおけるバグが復活するだろう
コミュニティ側は、Swagger Codegen 3.0の開発について既存のバージョンを基に、昨年7月に発表されたOpenAPI Specification 3.0対応にフォーカスすべきと考えていましたが、SmartBear社側はそうではない開発方針を持っていたようです。
そこでコミュニティ側のメンバーは、開発方針の食い違いについてSmartBear社と対話を試みましたが、結局合意にいたることはなかったとのこと。
There was several conversations with SmartBear (Ron, Hugo) via emails, gitter, Skype call and GitHub issues. But there was no consensus on the next steps and on the direction for Swagger Codegen 3.0.0.
SmartBear(RonとHugo)と何度かメールやGitter、Skype、GitHubなどで対話を行ったが、Swagger Codegen 3.0.0に向けた建設的な合意には達しなかった。
これによってSwagger CodegenのトップコントリビュータだったWilliam Cheng氏をはじめとする40名以上の開発者がSwagger Codegenをフォークし、OpenAPI Generatorの開発をスタートしたとのことです。
関連記事
カテゴリ 開発ツール / 言語 / プログラミング
タグ OpenAPI
あわせてお読みください
- RESTful APIの記述標準化を目指す「Open API Initiative」をマイクロソフト、Google、IBMらが立ち上げ。Swaggerをベースに
- HTMLスクレイピングやファイルでのバッチ連携を不要に、「API管理ツール」でWebへRESTful APIを公開。ドキュメントもSwagger記述も自動生成[PR]
- 「その目的にはこのAPIを使うのが最適です」、最適なAPIをワトソンの技術で教えてくれる、米IBMが「API Harmony」発表
- MS「Visual Studio Code」をオープンソースで公開/「PHP 7」登場、実行速度は2倍/RESTful APIの記述標準化を目指すほか、2015年11月の人気記事
前の記事
App Engineが軽量コンテナのgVisorを実行環境として採用、スタンダード環境でNode.jsをサポート開始