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の開発をスタートしたとのことです。
参考記事
GoogleはDockerコンテナのビルドをRESTful APIを用いて柔軟に自動化できるサービス「Container Builder」をGoogle Cloud Platform上で開始したことを発表しました。
マイクロソフトが正式にリリースした「Excel REST API for Office 365」を用いると、OneDriveに保存したExcelのワークシートに対してAPIでアクセスし、操作できるようになります。
関連記事
あわせて読みたい
モバイルネイティブアプリ開発ツールのFUSE、製品全体を「Fuse Open」としてオープンソースで公開。UXをマークアップで迅速に開発可能
≪前の記事
App Engineが軽量コンテナのgVisorを実行環境として採用、スタンダード環境でNode.jsをサポート開始