Swagger (Open API)3.0 がリリースされてから初めて使う機会があったので、自分なりの記述のポイントと、記述例をまとめました。
ポイント
- リソースIDやリソースといった複数のAPIで使われるプロパティ・オブジェクトを components/schemasに定義する。
- リソースIDのようなリクエストには指定しないが、レスポンスには指定されるプロパティは readOnly: trueで表現する。
- 個別取得APIでは返却されるが、一覧取得APIでは返却されないプロパティは、スキーマを分離して allOfを指定して共通のプロパティを定義する。
- ページングや検索などの複数のAPIで使われるパラメータを components/parametersに定義する。
- エラーレスポンスの形式が共通である場合は components/responsesに定義し、エラーコードをdescriptionに表形式でまとめる。
記述例
参考:エディタ
Swaggerを編集するときは、Swagger Viewer(Visual Studio Codeプラグイン)が、リアルタイムプレビューに対応していて、かつ動作も軽いため使いやすい。