OpenAPI
1. 使用する OpenAPI URL パス テンプレートを決める
2. 使用するパラメータ値を計算する(ある場合)
3. パラメータ値を URL パス テンプレートに挿入し、HTTP リクエストを送信する。
OpenAPI で、パスと呼ばれるものを定義します。OpenAPI のパスは、YAML では次のように表示されます。
code:yml
paths:
/pets/{petId}:
get:
operationId: getPetById
parameters:
- name: petId
in: path
required: true
description: The id of the pet to retrieve
schema:
type: string
API 設計: gRPC、OpenAPI、REST の概要と、それらを使用するタイミングを理解する | Google Cloud Blog
API 定義のバージョン管理が楽になる
基本的に YAML または JSON で記述するため、Git 等を使用してソースコードと同様に管理することができます。
つまり、Word, Excel で記述された仕様書に比べて更新履歴を管理していく努力が削減されます。
API 定義ファイルと実装を一緒にコミットすることで仕様と実装が乖離しにくくなるため、より正確かつ最新の情報を共有することができます。
仕様が明確になる
OAS のフォーマットに合わせて宣言的に書いていくことで曖昧な記述がなくなります。
またデータの仕様を明記するための各種データ型がサポートされているので、仕様が明確になります。
Swagger UI を利用する場合、Markdown で記述された項目の表示もサポートされ、細かい仕様や注意点を分かりやすく表現することができます。
WebAPI の仕様管理を仕組み化することができる
Swagger UI から API 定義ファイルを読み込むことでインタラクティブな Web ドキュメントを作成することができます。
別途 REST Client を使うことなく Swagger UI 上で動作確認ができてしまいます。
また Swagger Codegen を使ってクライアントライブラリ(SDK)を自動生成することもできますので、WebAPI を叩くクライアント側の実装も楽になります。
Amazon API Gateway を利用する場合、API 定義ファイルをインポートすることで API をデプロイすることができます。
逆にソースコードから API 定義ファイルを生成する仕組みもあるので、実に色んな使い方ができます。
API 定義ファイルの操作を CI に組み込むことで、仕様書の更新・クライアントSDKの生成と配布・WebAPIのデプロイなどをまとめて自動化することが可能になります。
OpenAPI (Swagger) を利用して効率よく WebAPI の仕様を管理する | Articles | Riotz.works
スキーマファースト開発
Swagger
アプリとサーバーのやり取りを一元化
I/Fの可視化
コードジェネレート機能
APIの素早い構造化・変更