springdoc Swagger UI 不发布 JSON

springdoc Swagger UI not POSTing JSON

我有一个 Spring Boot REST 应用程序,它使用 springdoc-openapi-ui 支持 Swagger。对于我的生活,我无法将生成的 Swagger UI 实际 POST JSON。相反,前端将 args 作为请求参数传递。如何让 Swagger UI 实际提交 JSON?

@Data
public static class SampleData {
    private String info;        
}
    
@PostMapping(value = "/test", consumes = "application/json")
public void postData(@ParameterObject @RequestBody SampleData data) {
    // do something
}

在 Swagger UI 中单击“试用”和“执行”后,请求失败并显示:

{
  "status": 415,
  "error": "Unsupported Media Type",
  ...
}

因为 UI 试图 POST 这个:

http://localhost:8080/myapp/v1/test?info=test

生成的curl命令也不正确(不是POSTing JSON):

curl -X 'POST' \
  'http://localhost:8080/myapp/v1/test?info=test' \
  -H 'accept: */*' \
  -d ''

请注意,如果我删除 @ParameterObject 注释,Swagger UI 将 POST JSON。但是,UI 不会呈现用户友好的形式(在完整示例中包含该 bean 中字段的文档注释)

我错过了什么?

Spring 引导:2.6.3,springdoc-openapi-ui:1.6.5

来自 springdoc github 的解决方案是删除 @ParameterObject 注释并切换到 UI 中的“架构”视图以查看 POJO 字段的文档。不完全是我希望的解决方案,但它有效。 github.com/springdoc/springdoc-openapi/issues/1482