Значение поля модели Flask Swagger по умолчанию динамическое

Я ищу способ сделать так, чтобы поле документации Swagger предлагало пользователю текущую дату каждый раз, когда оно загружается.

Очевидно, что предоставление ценности не работает, поскольку она остается статичной. Предоставление ему функции также не работает, поскольку представление отображается и остается статичным.

Для модели api:

request_model = api.model("v1/item", {
   "ItemId": fields.List(fields.String, description = 'ItemIds', required = True),
   "Date": fields.String(description = 'Date', default = (datetime.now().strftime('%Y-%m-%d')))
})

второе поле (Дата) должно содержать текущую дату как значение по умолчанию.

Вместо того, чтобы показывать текущее время каждый раз при загрузке, он показывает в основном время рендеринга (сохранения) просмотра. Я рассматривал возможность добавления пользовательского кода javascript для создания этого значения или вызова конечной точки для загрузки по умолчанию, но не нашел способа добавить его на страницу API Swagger. Как лучше всего это сделать? Спасибо.


person protagora    schedule 07.06.2019    source источник
comment
Измените аннотации так, чтобы они генерировали определение поля как type: string + format: date. Пользовательский интерфейс Swagger автоматически показывает текущую дату как примерное значение для полей format: date (как можно увидеть здесь: petstore .swagger.io / # / store / placeOrder).   -  person Helen    schedule 07.06.2019


Ответы (1)


используйте параметр example внутри метода поля типа, подобного этому

fields.String(description = 'Date', example = (datetime.now().strftime('%Y-%m-%d')))})
person Axel Anaya    schedule 02.08.2019