OpenAPI(OAS) を利用するツールや OpenAPI を生成するツールなどを改めて一通りおさらい。
ツールの使用目的からまとめているので、かなり重複があります。
おことわり
使ったことがないツールも多いので、内容に正確性はないです。足りないものや間違いがありましたら教えていただけますと助かります。
OpenAPI を記載するためのツール
Swagger Editor
左側に OpenAPI を書くと右側にAPI定義を記載してくれるツール。
まずは OpenAPI とはどんなものかを知るときには、最初からペットショップのサンプルも張り付けてあるので便利。
Apidog
APIデザイン中心の開発プラットフォーム。
作成したプロジェクトを選択してエクスポートすると、プロジェクトの内容を OpenAPI 形式で出力することができます。
Stoplight Studio
OpenAPIをデザインするためのツール。
GUIでAPIの内容を記載していくと、合わせてOpenAPIの内容も記載してくれる。
Code を確認することにより、OpenAPIの内容を確認することができる。
ソースから OpenAPI を生成するツール
apidoc-to-openapi
APIDOC から OpenAPI を出力するツール。
2019年あたりからリリースがとまっている模様。
springdoc-openapi
SpringのAPIをAPIドキュメントに変換してくれる。
実行すると、swagger-ui が起動し、その中にOpenAPIのファイル(open-api.json)も出力してくれる1。
Kotolinもサポート。
OpenAPI からソースを生成するツール
OpenAPI で API の定義を記載したファイルから、APIサーバーやクライアントのコードを生成するツール。
OpenAPI Generator
サーバーのスタブと API クライアントのソースコードを生成してくれる。
サーバー側は C#、Go、Haskel、Java、Kotlin、PHP、Python、NodeJS、Ruby、Rust、Scalaなど。
API クライアント側は、Go、Haskell、Java、Node.js/JavaScript、Perl、PHP、Python、Ruby、Rust、Scal、Swift、TypeScriptなどに対応。
たくさんありすぎて書ききれない、、、
Apidog
Apidog でもソースコードの生成が可能です。
OpenAPI から生成するというよりは、Apidog で API 仕様を書くか、 OpenAPI のファイルをインポートしてからその内容を元にソースを出力することができます。
出力できる言語は、Java、PHP、Kotolin、JavaScript、C#、Go、Scala、Python、Rust、Ruby、Perlなどのクライアントとサーバーのコードを出力することができます。
あと、Swiftのクライアントコードを出力することもできます。
aspida
ブラウザと Node.js のための API クライアントを生成してくれるツール。
openapi-python-client
Python 用の API クライアントを生成してくれるツール。
OpenAPI からAPIを叩くツール
主にテストとして、APIサーバーに接続してAPIを実行し、結果を確認することができるツール。
Postman
APIを外部から実行し動作を確認することができるツール。
OpenAPI の内容をインポートして、API定義を読み込むことができる。
Insomnia
Insomnia も OpenAPI の内容をインポートして、APIを実行することができる。
Apidog
ApidogもAPI仕様から対象のAPIを実行することができる。
Swagger Editor
Swagger Editor もAPIを叩くことができます。ただ、OpenAPIを貼り付ける必要があるので、ちょっと確認する以外の用途では使いづらいかも。
OpenAPI からテストを生成するツール
PACT
APIの契約テストを行うツール。
APIクライアント側(コンシューマ側)のテストと、APIサーバー側(プロデューサー側)のテストを行うことができる。
両方を同じテスト仕様(契約)によってテストすることにより、APIクライアント側とAPIサーバー側の結合が問題なく行えることを検証する。
Apidog
Apidog では、自動テストを管理することができ、OoenAPIの内容から指定したパラメータに対して正しいステータスを返すのかといったテストを行うことができます。
OpenAPI から仕様書を生成するツール
Swagger UI
OpenAPIの内容を仕様書として表示するツール。
Swagger Editor の右側(?)。
APIサーバーの簡単な動作確認もできる。
OpenAPI から API Gateway を設定するツール
AWS
Amazon API Gateway
Amazon API Gateway では、Gateway の設定を OpenAPI の定義を読み込むことによって行うことができます。23
Azure
Azure API Management
Azure API Management でも、OpenAPI を設定としてインポートすることができます。4
GCP
API Gateway
Google Cloud では名前もそのままの API Gateway があります。
APIの設定維持に OpenAPI の内容をインポートすることができます。5
-
https://springdoc.org/#how-can-use-custom-jsonyml-file-instead-of-generated-one ↩
-
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/api-gateway-import-api.html ↩
-
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/http-api-open-api.html ↩
-
https://learn.microsoft.com/ja-jp/azure/api-management/import-api-from-oas?tabs=portal ↩