Как я могу настроить маршрут моего узла swagger для приема любого типа контента?
В настоящее время мой Swagger YAML настроен для принятия application/json
по умолчанию для каждого маршрута со следующим в определении Swagger верхнего уровня:
swagger: "2.0"
info:
version: "0.0.1"
title: my App
# during dev, should point to your local machine
host: localhost:5054
# basePath prefixes all resource paths
basePath: /
schemes:
# tip: remove http to make production-grade
- http
- https
# format of bodies a client can send (Content-Type)
consumes:
- application/json
produces:
- application/json
Теперь у меня есть маршрут, который может возвращать файлы, и я не хочу указывать все потенциальные файлы, которые могут быть возвращены. На странице Swagger GitHub я видел, что может быть какой-то подстановочный знак, который позволяет возвращать любой тип контента. Я пробовал следующее в моем маршруте:
get:
description: Download a single document
operationId: getDocument
produces: []
но Swagger UI не позволит мне отправить запрос в UI, так как считает, что Accept
поле заселено.
Затем:
get:
description: Download a single document
operationId: getDocument
produces: */*
Но Swagger UI выдает ошибку, заявляющую unidentified alias "/*"
, Я тоже пробовал \*/*
на всякий случай, это было связано с необходимостью сбежать, но это не сработало.
В заключение:
get:
description: Download a single document
operationId: getDocument
produces: "*/*"
Это позволило мне протестировать маршрут в Swagger UI, но ответ по-прежнему не прошел проверку и утверждал, что ожидаемый тип контента все еще должен быть application/json
,
Есть ли подстановочный знак, который работает, или я пытаюсь сделать что-то, для чего Swagger не настроен?
1 ответ
*/*
соответствует всем типам медиа и эквивалентно application/octet-stream
,
produces
это массив, поэтому вам нужно использовать синтаксис массива. Кроме того, так как это YAML, '*/*'
должен быть заключен в кавычки, потому что *
это специальный символ, используемый для обозначения псевдонимов узлов.
produces:
- '*/*'
# or
- application/octet-stream