我正在尝试使用 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") ,但它仍然不起作用。
你能帮我弄清楚我错过了什么吗?