记录自定义数据映射

时间:2019-06-24 19:20:47

标签: jackson jersey jax-rs swagger swagger-ui

我写了一个自定义的Jackson JsonSerializer,将我的Money POJO序列化为:

{
"amountMinorUnits": 123,
"currency": "USD",
 }

但是,在Swagger中,当响应POJO引用Money Pojo时,Swagger会看到原始的Money POJO并确定API使用了该货币,而不是客户序列化的版本。

所以,如果我有

class Person {
   Money salary;
   ...
}

如何弄清楚Money JSON是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

在您的招摇配置中使用directModelSubstitute

Spring Boot应用程序示例。只需专注于敏捷配置:

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket api() {
        return new Docket(DocumentationType.SWAGGER_2)
                .directModelSubstitute(Response.class, ResponseSerializer.class)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }