Как мне задокументировать параметр Rest, предоставляющий другой тип (MyClass или String)? - PullRequest
0 голосов
/ 10 июля 2020

В Springfox я однажды использовал следующий синтаксис для рендеринга параметра String с полной моделью ( исходный выпуск Github ):

@PatchMapping(path="/{objId}")
@ApiImplicitParams(@ApiImplicitParam(name="update", dataType="MyClass")) 
    public ApiResponse<MyClass> updateMyClassInst(@PathVariable String objId, @RequestBody String update) {

Причина этой формулировки в том, что если я поместил MyClass в качестве типа тела запроса, я не мог различить guish, когда свойство не было обновлено или когда было установлено значение null, потому что оба будут десериализованы до нулевого значения поля.

Как мне сделать это с помощью Springdo c?

1 Ответ

2 голосов
/ 11 июля 2020

Это эквивалентный код, использующий OpenAPI 3.

@PatchMapping(path="/{objId}")
@RequestBody( content = @Content(schema = @Schema(implementation = MyClass.class)))
public ApiResponse<MyClass> updateMyClassInst(@PathVariable String objId, @RequestBody String update) {
    return null;
}

Вы можете посмотреть руководство по миграции hte:

И документация по чванству:

...