我用 RestController 创建了一个 Spring Boot 应用程序。我启用了 Swagger UI,它运行良好,因为我可以登录 UI 并执行任何 GET 方法。但是对于接受正文中的对象的 POST 方法,当我使用 Swagger UI 触发请求时,它总是返回 400 状态代码。我可以看到请求从未到达特定的 POST 方法。我可以知道 Swagger UI 是否需要任何特殊配置?
我的 Spring Boot RestController 中的特定方法
@ApiOperation(value = "Query requests by search criteria")
@RequestMapping(value = "/api/query", method = POST)
public PageResult<MyPOJO> find(@RequestBody SearchRequest request) {
//implementation omitted.
}
我正在使用
"io.springfox:springfox-swagger2:2.1.2",
"io.springfox:springfox-swagger-ui:2.1.2"
这个(由 Swagger UI 生成)对应的 api 给了我 400 错误请求:
{
"listEntrySearchCriteria": {
"summary": {
"createdBy": "string",
"createdOn": "2016-03-21T10:33:05.048Z",
"effectiveEnd": "2016-03-21T10:33:05.048Z",
"effectiveStart": "2016-03-21T10:33:05.048Z",
"id": 0,
"region": "string",
"type": "ETB",
"updatedBy": "string",
"updatedOn": "2016-03-21T10:33:05.048Z",
"version": 0
}
},
"listSummarySearchCriteria": {
"effectiveEnd": "2016-03-21T10:33:05.048Z",
"effectiveStart": "2016-03-21T10:33:05.048Z",
"statuses": [
"string"
],
"types": [
"string"
]
},
"pageRequest": {
"orders": [
{
"direction": "ASC",
"ignoreCase": true,
"nullHandling": "NATIVE",
"property": "string"
}
],
"page": 0,
"size": 0
}
}
但是如果我为相同的方法提供一个随机请求,它至少会达到我的方法:
{
"orders": [
{
"direction": "ASC",
"ignoreCase": true,
"nullHandling": "NATIVE",
"property": "id"
}
],
"page": 0,
"size": 0
}