首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Springdoc无法检测要映射为UI上的单个参数的POJO字段

Springdoc无法检测要映射为UI上的单个参数的POJO字段
EN

Stack Overflow用户
提问于 2021-02-15 14:51:32
回答 1查看 86关注 0票数 0

我的springboot应用程序有一个@RestController,它接受一个POJO类作为参数。

代码语言:javascript
复制
@GetMapping(path="/")
public void sayHello(Person person) {
    System.out.println(person);
}

这是Person类的定义,它只是一个POJO。

代码语言:javascript
复制
public class Person {

private String firstName;
private String lastName;
private int age;

public String getFirstName() {
    return firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}
public String getLastName() {
    return lastName;
}
public void setLastName(String lastName) {
    this.lastName = lastName;
}
public int getAge() {
    return age;
}
public void setAge(int age) {
    this.age = age;
}

@Override
public String toString() {
    return "Person [firstName=" + firstName + ", lastName=" + lastName + ", age=" + age + "]";
}

}

这就是springdoc-ui如何解释它,以便在UI中显示参数。

我没有在控制器中使用@RequestBody,但是springdoc假定输入是JSON body的形式。我打算将其作为查询参数,如下所示

有趣的是,如果我将swagger实现更改为springfox,POJO的每个字段在默认情况下都被解释为UI中的单个参数。最后一个屏幕截图是使用springfox实现的。如何获得与springdoc相同的行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-15 16:14:12

使用@ParameterObject可以解决这个问题。

代码语言:javascript
复制
@GetMapping(path="/")
public void sayHello(@ParameterObject Person person) {
    System.out.println(person);
}

在这里找到了解决方案:

https://github.com/springdoc/springdoc-openapi/issues/162

https://github.com/springdoc/springdoc-openapi/pull/505

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66203786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档