如何记录提供另一种类型(MyClass 与 String)的 Rest 参数?

How do I document a Rest parameter providing another type (MyClass vs. String)?

在 Springfox 中,我曾经使用以下语法来呈现具有完整模型的字符串参数 (original Github issue):

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

这种表述的原因是,如果我将 MyClass 作为请求主体的类型,我无法区分 属性 何时未更新或何时设置为空,因为两者都将被反序列化为空字段值。

我如何使用 Springdoc 做到这一点?

这是等效代码,使用 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迁移指南:

以及 swagger 文档: