1

我用 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
}
4

0 回答 0