How can I define a property type as being a list (list, set, array, collection) of string in my YAML Swagger definition

前端 未结 2 1477
我在风中等你
我在风中等你 2021-01-17 18:06

I am writing a swagger definition file for an API. The API is a for a GET request

/path/to/my/api:
  get:
    summary: My Custom API
    description: |
              


        
相关标签:
2条回答
  • 2021-01-17 18:13

    None of these comments really seem to answer the question -- How do you define a SET of items in OpenAPI/Swagger?

    • An array of strings is not the same as a SET
    • An array of unique strings is not the same as SET

    A set is essentially an array of unrepeated enum values.

    Given possible string values of facebook, pinterest, twitter, a field named share_type could have values containing one or more of them, ex:

    Valid

    facebook twitter facebook, twitter facebook, twitter, pinterest

    Invalid Items

    instagram facebook, instagram pinterest, pinterest

    Another important distinction is that the values cannot be repeated. This is where the uniqueItems directive can be helpful.

    So given the example above, here is what that OpenAPI spec might look like:

    share_type:
              type: array
              enum:
                - facebook
                - pinterest
                - twitter
              uniqueItems: true
              items: {}
    
    0 讨论(0)
  • 2021-01-17 18:33

    For a list of strings, you can describe as follows:

          type: array
          items:
            type: string
    

    Ref: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#schemaObject

    Example:

    • https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml#L93-L100 (OpenAPI v2)
    • https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/test/resources/3_0/petstore.yaml#L71-L78 (OpenAPI v3)
    0 讨论(0)
提交回复
热议问题