以下是我生成的swagger文档的摘录。
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/ActionJsValue"
}
},
"400": {
"description": "list of validation errors",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/Error"
}
}
}
}
在定义部分:
"Error": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
并且swagger-ui不显示响应模型。
有人遇到过这个问题吗? 任何人都知道如何解决这个问题?
答案 0 :(得分:1)
我遇到了完全相同的问题,并找到了下一个解决方法。
方法说明:
"responses": {
"200": {
"description": "successful operation",
"schema": {
"$ref": "#/definitions/ActionJsValue"
}
},
"400": {
"description": "list of validation errors",
"schema": {
"$ref": "#/definitions/ErrorsArray"
}
}
}
定义部分:
"ErrorsArray": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"messages": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
因此,只需将数组定义为单独的类型。
答案 1 :(得分:-1)
您使用生成的swagger文档的网址,您需要在swagger-ui index.html页面中使用相同的网址。 EX:如果您对生成的swagger文档使用“http:// {servername}:{port} / {App-Context} / {url-pattern} /swagger.json”,则必须在index.html中使用下方。
<script type="text/javascript">
$(function () {
var url = window.location.search.match(/url=([^&]+)/);
if (url && url.length > 1) {
url = decodeURIComponent(url[1]);
} else {
url = "http://petstore.swagger.io/v2/swagger.json";// you need to change this url to your's url http://{servername}:{port}/{App-Context}/{url-pattern}/swagger.json
}
请告诉我如果这可以帮到你,谢谢。