REST API仕様からAPIクライアントやスタブサーバを自動生成する「OpenAPI Generator」オープンソースで公開。Swagger Codegenからのフォーク

2018年5月15日

RESTful APIの仕様を基に、APIクライアント用SDK、APIクライアントのテスト用にAPIサーバのように振る舞ってくれるスタブサーバ、Webサーバのコンフィグレーション、ドキュメントなどを自動生成してくれる「OpenAPI Generator」がオープンソースとして公開されました

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でアクセスし、操作できるようになります。

関連記事

あわせて読みたい

プログラミング言語 API




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本