Skip to content

OpenAPI YAML Style Guidelines

エンドポイントに tags を使う

関連エンドポイントをグループ化するために tags を使用します。

yaml
tags:
  - name: articles
    description: Articles 関連のエンドポイント

各エンドポイントに operationId を設定する

operationId{動詞}{リソース} の形式で指定し、一意に識別します。

yaml
operationId: getArticle
operationId: createArticle
operationId: listArticles

レスポンスに API バージョンを含める

レスポンスボディは data キーの下にネストし、apiVersion を含めます。

json
{
    "apiVersion": "1.0.0",
    "data": {
        "article": {
            "id": "1",
            "title": "Article 1",
            "content": "Content 1"
        }
    }
}

各エンドポイントにリクエスト・レスポンススキーマを定義する

yaml
components:
    schemas:
        Article:
            ...
    requests:
        CreateArticleRequest:
            ...
    responses:
        CreateArticleResponse:
            ...

エラーレスポンスに共通スキーマを使う

yaml
components:
    schemas:
        Error:
            type: object
            properties:
                code:
                    type: string
                message:
                    type: string
            required:
                - code
                - message
    responses:
        ErrorResponse:
            description: Error response
            content:
                application/json:
                schema:
                    type: object
                    properties:
                    apiVersion:
                        $ref: '#/components/schemas/ApiVersion'
                    error:
                        $ref: '#/components/schemas/Error'
                    required:
                    - apiVersion
                    - error