当前位置: 首页 > 知识库问答 >
问题:

Swagger定制模型

祁俊喆
2023-03-14

Im使用swagger和spring boot为我的对象自动生成API文档。但是,我正在使用@JSONanyGetter@JSONanySetter动态地向我的json响应添加字段。如

public class SomeResponse {

    //Standard part picked up by swagger
    public String field1;
    public String field2;

    //Dynamic Part not picked up by Swagger
    private HashMap dynamicFields = new HashMap();

    @JsonAnySetter
    public final void putDynamicField(String key, Object value){
        dynamicFields.put(key, value);
    }

    @JsonAnyGetter
    public final HashMap getDynamicFields(){
        return dynamicFields;
    }
}

产生:

{
   "field1":""
   "field2":""
}
{
   "field1":""
   "field2":""

   "dynamicField1": {}
   "dynamicFieldN": {}

}

共有1个答案

吕淮晨
2023-03-14

Swagger不支持@jsonanygetter@jsonanysetter。您必须有具体的模型定义,或者配置一个自定义模型转换器来向模型添加运行时字段。

 类似资料:
  • 我使用maven codegen插件只是从我的yml文件生成控制器和模型文件的接口。这是一个java Spring Boot程序。 插件配置: 关键是在我的目标/生成的源目录/swagger中生成了许多我不需要的文件,例如: . swagger-codemen/Version . swagger-codemen-忽略 pom-xml README. md 我只需要在src/main/java…中生

  • 我有一个用于POST操作的大摇大摆的Spring MVCendpoint。该操作采用一个路径参数和一个(json)请求实体。当大摇大摆的UI生成时,它会自动创建请求正文数据类型的示例值。这个例子是基于应用程序中的一个java实体。该实体用于一些其他操作,但是对于POST操作,我不希望示例中暴露的一些实体字段。是否可以在不修改现有java模型的情况下修改这个例子?例如,是否可以在下面的示例中排除。

  • 我在互联网上搜索了如何定制我的多个文档的endpoint,但还没有找到答案。 我的模块有几个API。我想在不同的endpoint上生成大摇大摆的文档,每个endpoint都位于其相应API的根上。例如: 你知道用我想要的方式定义endpoint的方法吗? 提前致谢

  • 我有一个ASP。NET核心Web API,其中包含以下endpoint。 此endpoint获取ID的CSV列表(例如),并返回相应对象的JSON数组<代码>CsvModelBinder 我现在尝试的是使用NSwag生成一个客户端库,但事实证明这是有问题的,因为Swashback生成的Swagger将参数描述为

  • 此配置显示所有控制器,如何在 Swagger 上仅显示特定的控制器?

  • 我正在使用。Net framework 4.6.1和Swashback版本5.3.2在我的WebApi项目中。Swagger UI没有提供将输入作为请求主体发送到使用自定义模型绑定器的my POST Api的选项。 -使用的模型: -使用的API Post方法: -使用的活页夹型号: 我面临以下问题: > 当我们在post方法中使用“ModelBinder”时,Swagger UI显示这个屏幕,其