У меня есть @RestController с таким методом
@RestController
public MyController {
@Operation(summary = "Some text", description = "Some text again"
@GetMapping("/route")
public MyClassResponse getSomething(
@Parameter(name = "My request", description = "My request") MyRequest request
) {
// to do smth
return response
}
, где MyRequest равен
public class MyRequest {
private int param1;
private String param2;
private MyClass param3;
}
, а MyClass выглядит как
public class MyClass {
private int clazzParam1;
private int clazzParam2;
}
Прежде всего, Swagger показывает параметр MyRequest как тело
{
"param1" : 0;
"param2" : "string",
"param3" : {
"clazzParam1" : 0,
"clazzParam2" : 0
}
}
, но я хотел бы видеть каждый параметр как этот
Второй, когда я пытаюсь сделать запрос, я получаю этот curl
http://localhost: 8080 / route? Param1 = 0¶m2 = string¶m3 = clazzParam1,0, clazzParam2,0
вместо
http://localhost: 8080 / route? Param1 = 0¶m2 = string¶m3.clazzParam1 = 0¶m3.clazzParam2 = 0
Поэтому в ответе содержится следующая ошибка Не удалось преобразовать значение свойства типа 'java .lang.String 'для требуемого типа' MyClass 'для свойства' param3 '.
Как использовать аннотации, чтобы получить то, что я хочу? По разным причинам я не могу использовать описание .yaml. Спасибо.