gpt4 book ai didi

java - Swagger @ApiParam 要求在传递 null 时不工作

转载 作者:行者123 更新时间:2023-12-05 04:02:54 26 4
gpt4 key购买 nike

我有以下内容:

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Path("/some/path")
void createSomething(@ApiParam(required = true) @Valid final User user);

User 类似于

class User {
@Valid
@NotNull
@NotBlank
final String name;

...
}

如果我执行 curl -X POST -H "Content-Type: application/json"/some/path -d '{"foo":"bar"}' 我会返回 400 .

但是,如果我不发送任何东西,那么我不会得到 400,即 curl -X POST -H "Content-Type: application/json"/some/path 不会产生结果在 400 中(后来的结果是 500,因为对象 user 现在为 null。

我做错了什么?

最佳答案

Swagger 注释不会对输入执行任何服务器端验证 - 它们仅用于生成 swagger 文档。然后,您必须以某种方式从生成的 Swagger 文档创建用户界面(例如,如果使用 Spring Boot https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui,则使用 Springfox swagger-ui)。最后,如果 UI 生成正确,UI 将执行验证。

由于在示例中您使用 Curl 发送请求,swagger 注释什么都不做(因为您没有通过 Swagger UI 发送请求)因此您可以发送空值。为了执行服务器端验证,您必须使用其他注释。

关于java - Swagger @ApiParam 要求在传递 null 时不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54014562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com