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: |
Gets a List of FooBar IDs
produces:
- application/json
tags:
- FooBar
responses:
"200":
description: successful operation
schema:
$ref: "#/definitions/MyCustomType"
...
MyCustomType:
type: object
properties:
myCustomObject
type: ??? # list of string?
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:
None of these comments really seem to answer the question -- How do you define a SET of items in OpenAPI/Swagger?
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
uniqueItems: true
items:
type: string
enum:
- facebook
- pinterest
- twitter
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With