Контекст
Скажем, у вас есть:
public class Dto {
private String name;
private String List<String> customs;
// getters and setters...
}
а также
public class Custom {
private String something;
private String else;
// getters and setters...
}
Ваш Spring MVC RestController
получает список из Dto
:
@PostMapping
public String create(@RequestBody List<Dto> dtos) {
return myService.process(features);
}
Вход
Однако вы знаете, что клиентская служба, которая будет отправлять данные вашему контроллеру, отправит что-то вроде этого:
[
{
"name": "Bob",
"customs": [
"{\n \"something\": \"yes\",\n \"else\": \"no\"\n }"
]
}
]
Обратите внимание, что String
представляет собой json-представление класса Custom
. Пожалуйста, предположите, что это не может быть изменено на стороне клиента, и мы должны иметь дело с этим на стороне сервера.
Вопрос
Есть ли аннотация OpenAPI, которая позволила бы мне обозначить Custom
как объект, который будет автоматически преобразован в String
, который затем будет использоваться в качестве примера в пользовательском интерфейсе?
В качестве примера я говорю об этом автоматически сгенерированном json (пожалуйста, не обращайте внимания на фактические данные, показанные там, поскольку они не соответствуют представленной упрощенной проблеме):
Я прошу установить автоматический, потому что я бы предпочел не возвращаться к особенностям String
, если мы в конечном итоге изменим свойства класса Custom
(удалив something
атрибут, например).
Мы используем эти зависимости Maven:
<!-- Swagger / OpenAPI -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.4.1</version>
</dependency>
springdoc
иspringfox
вместе? - person SSK   schedule 15.09.2020springfox
в своем репо. - person payne   schedule 16.09.2020