【OpenAPI】allOfやoneOfを使用して、Enumプロパティをオーバライドして抽出したEnumプロパティを生成するぞ


1. allOfを使った方法

特定のEnumの値だけを含むEnumスキーマを定義

components:
  schemas:
    MyEnum:
      type: string
      enum:
        - VALUE1
        - VALUE2

Enumを含むスキーマを定義し、propertiesセクションでそのEnumを指定します

components:
  schemas:
    MyObject:
      type: object
      properties:
        myEnumProperty:
          $ref: '#/components/schemas/MyEnum'

特定のEnumのみを使用する場合、それを示す新しいスキーマを作成し、allOfプロパティを使用してEnumを含むスキーマと結合します

components:
  schemas:
    MySpecificEnumObject:
      allOf:
        - $ref: '#/components/schemas/MyObject'
        - type: object
          properties:
            myEnumProperty:
              enum:
                - VALUE1

2. oneOfを使った方法

allofの時と同じくEnumのスキーマを定義

omponents:
  schemas:
    MyEnum:
      type: string
      enum:
        - VALUE1
        - VALUE2

oneOfを使用して、特定のEnumのバリエーションを示す新しいスキーマを作成

components:
  schemas:
    MySpecificEnumObject:
      type: object
      properties:
        myEnumProperty:
          $ref: '#/components/schemas/MyEnum'
      required:
        - myEnumProperty
      oneOf:
        - required:
            - myEnumProperty
          properties:
            myEnumProperty:
              enum:
                - VALUE1

是非フォローしてください

最新の情報をお伝えします