1

我正在尝试使用 springfox(版本 2.0.2)记录我的 spring(版本 3.2.6)应用程序。
我的模型类有一个 org.joda.time.DateTime 字段。当它在响应模型模式中呈现时,它看起来像这样:

"dataAsOf": {
"afterNow": true,
"beforeNow": true,
"centuryOfEra": 0,
"chronology": {
  "zone": {
    "fixed": true
  }
},
"dayOfMonth": 0,
"dayOfWeek": 0,
"dayOfYear": 0,
"equalNow": true,
"era": 0,
"hourOfDay": 0,
"millis": 0,
"millisOfDay": 0,
"millisOfSecond": 0,
"minuteOfDay": 0,
"minuteOfHour": 0,
"monthOfYear": 0,
"secondOfDay": 0,
"secondOfMinute": 0,
"weekOfWeekyear": 0,
"weekyear": 0,
"year": 0,
"yearOfCentury": 0,
"yearOfEra": 0,
"zone": {
  "fixed": true
}

我真的很想
摆脱我的领域中那些无用的细节。
到目前为止,我已经在我的招摇配置类中尝试了这个:

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

@Bean
public Docket restfulApi() {
    String deploymentEnvironment = EnvironmentUtils.getDeployedEnvironment();

    Docket docket = new Docket(DocumentationType.SWAGGER_2)
                    .enable(isSwaggerEnabled(deploymentEnvironment))
                    .apiInfo(getApiInfo())
                    .directModelSubstitute(DateTime.class, String.class);
    docket = new ApiSelectorBuilder(docket)
            .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
            .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
            .build();

    return docket;
}

public ApiInfo getApiInfo() {
    ApiInfo apiInfo = new ApiInfo("API", "RESTful description", "1.0", "terms of service", "email@email.com", "Licence Type", "License URL");
    return apiInfo;
}

public boolean isSwaggerEnabled(String deploymentEnvironment) {
    return deploymentEnvironment.equalsIgnoreCase("local") ? true : false;
}


所以我使用 Docket 的 directModelSubstitute 方法将 DateTime 类替换为 String 类,但没有成功。 dateAsOf 字段仍在显示所有这些额外信息。
我还尝试在我的 getter 上为 dataAsOf 字段使用 @ApiOperation(dateType="java.lang.String") ,但它仍然不起作用。

你能帮我弄清楚我错过了什么吗?

4

1 回答 1

2

我已经设法让它发挥作用。
看来,首先我必须应用Docket.ignoredParameterTypes(DateTime.class)swagger 框架不会为此类生成任何文档,然后应用Docket.directModelSubstitute(DateTime.class, String.class)它将实际替换该类。
现在我的模型架构是:

"dataAsOf": "string"
于 2015-11-02T10:19:08.193 回答