Swagger 2.0.
.netcore 2.1
фартук как на картинке.
У меня есть этот атрибут в конечной точке API:
[SwaggerResponse(statusCode: 200, type: typeof(List<Cat>), description: "successful operation")]
Когда я запускаю API и перехожу к https://localhost:44394/swagger/v1/swagger.json, json присутствует, но SwaggerResponse
, похоже, игнорируется.
Это пример того, что я получаю:
"/api/data/cats": {
"get": {
"tags": [
"CatApi"
],
"operationId": "GetCatsById",
"consumes": [],
"produces": [],
"parameters": [
{
"name": "catIds",
"in": "query",
"required": true,
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"collectionFormat": "multi",
"uniqueItems": false
}
],
"responses": {
"200": {
"description": "Success"
}
}
}
},
Вы можете видеть, что в ответе просто отображается 200, и я не совсем уверен, откуда оно получает это описание - как вы можете видеть в атрибуте, оно должно быть successful operation
, а мой XML-комментарий - <response code="200">successful operation</response>
.
Я очень смущен. Как я могу получить Swashbuckle, используя атрибут SwaggerResponse
, когда он генерирует json?
Дополнительная информация:
Если я использую [ProducesResponseType(statusCode: 200, type: typeof(List<Cat>))]
, тогда я получаю то, что хочу:
"/api/data/cats": {
"get": {
"tags": [
"CatsApi"
],
"operationId": "GetCatsById",
"consumes": [],
"produces": [
"text/plain",
"application/json",
"text/json"
],
"parameters": [
{
"name": "catIds",
"in": "query",
"required": true,
"type": "array",
"items": {
"type": "integer",
"format": "int32"
},
"collectionFormat": "multi",
"uniqueItems": false
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"uniqueItems": false,
"type": "array",
"items": {
"$ref": "#/definitions/Cat"
}
}
}
}
}
},
Вы можете увидеть дополнительные данные в поле produces
и schema
в поле responses
.
Я мог бы изменить, чтобы использовать ProducesResponseType
везде, но это не является стандартным полем, что касается Swagger - если я когда-нибудь заново сгенерирую код из файла swagger, мне придется всегда вносить эти изменения, чтобы я ' я хотел бы заставить его работать с SwaggerResponse
.