Я наконец нашел способ сделать это. Это решение применимо к OpenAPI 3 - последней версии спецификации OpenAPI в качестве пункта ответа на этот вопрос.
Вот как я это сделал :
Решение 1
components:
schemas:
State:
type: object
additionalProperties:
type: string
example:
state1: State 1
state2: State 2
state3: State 3
state4: State 4
state5: State 5
Это передавало весь га sh в тело ответа на запрос и, таким образом, выдавало ошибки
Решение 2:
Другой способ - представить их как массивы, что не было моим идеальным решением, но позволило Swagger выбрать только один элемент из массива для передачи в тело ответа на запрос. Однако я хотел бы принять к сведению, что перечисления являются хешами, и мне придется сделать collection_select
из hashes
для перечислений на моей стороне клиента.
components:
schemas:
State:
type: string
description: List of States
enum:
- State 1
- State 2
- State 3
- State 4
- State 5
Наконец , какое бы решение вы ни выбрали, вы можете ссылаться на них в других моделях, например так:
components:
schemas:
User:
type: object
properties:
id:
type: integer
format: int64
first_name:
type: string
last_name:
type: string
password:
type: string
format: password
state:
$ref: '#/components/schemas/State'
Вот ссылка на документацию Swagger: Словари, HashMaps и ассоциативные массивы
Вот и все.
Надеюсь, это поможет