Springdoc 无法检测到 POJO 的字段以映射为 UI 上的单独参数
Springdoc cannot detect POJO's fields to map as individual parameters on UI
我的 springboot 应用程序有一个 @RestController,它将 POJO class 作为参数。
@GetMapping(path="/")
public void sayHello(Person person) {
System.out.println(person);
}
这里是 Person class 的定义,它只是一个 POJO。
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 implemntation 截取的。我如何使用 springdoc 获得相同的行为?
使用@ParameterObject 解决了这个问题。
@GetMapping(path="/")
public void sayHello(@ParameterObject Person person) {
System.out.println(person);
}
在此处找到解决方案:
我的 springboot 应用程序有一个 @RestController,它将 POJO class 作为参数。
@GetMapping(path="/")
public void sayHello(Person person) {
System.out.println(person);
}
这里是 Person class 的定义,它只是一个 POJO。
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 implemntation 截取的。我如何使用 springdoc 获得相同的行为?
使用@ParameterObject 解决了这个问题。
@GetMapping(path="/")
public void sayHello(@ParameterObject Person person) {
System.out.println(person);
}
在此处找到解决方案: