【问题标题】:OpenAPI @RequestBody variables of type Map are not populated未填充 Map 类型的 OpenAPI @RequestBody 变量
【发布时间】:2022-01-07 03:06:18
【问题描述】:

我有一个简单的 POST API,其中 @RequestBody 包含一个 HashMap 类型的变量。

问题是变量“myMap”从未被填充。

Swagger UI 正确显示输入字段,并带有相应的默认值。 我还在配置文件中添加了一个静态块,否则 Swagger UI 不会显示 Map 类型的输入字段。

填充变量 myMap 需要什么?

配置类

static {
    SpringDocUtils.getConfig().removeRequestWrapperToIgnore(java.util.Map.class);
}

控制器类

@RequestMapping(value = "/process/start",method = RequestMethod.POST)
public void startProcess1(
        @RequestBody(description = "HashMap of strings", required = true) HashMap<String, String> myMap)  {
    Assert.notEmpty(myMap, "map may not be empty");
}

招摇用户界面

pom.xml

    <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.5.12</version>
    </dependency>

【问题讨论】:

    标签: java spring-boot swagger-ui openapi


    【解决方案1】:

    我发现我使用了错误的注释。 @RequestBody 是一个位于两个包中的类:

    1. org.springframework.web.bind.annotation
    2. io.swagger.v3.oas.annotations.parameters

    我使用了包 io.swagger.v3.oas.annotations.parameters 中的注释,这是错误的。 正确的注解位于 org.springframework.web.bind.annotation

    包中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多