0
私のJava Springプロジェクトでは、新しい属性をスワッガー定義に追加しようとしています。 私がマニュアルを読み、特別 https://springfox.github.io/springfox/docs/snapshot/#pluginsSpringfox(swagger) - 動的属性を追加するには
をしかし、私は、私はこのコードをしようとしていますが、それは私が欲しいものは本当にありませんスクラッチ
から新しい属性を追加することができませんでしたています
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.classmate.TypeResolver;
import com.google.common.base.Predicates;
import fr.hop.springdatarest.demo.entity.City;
import lombok.extern.java.Log;
import springfox.documentation.builders.ModelPropertyBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.Model;
import springfox.documentation.schema.ModelProperty;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.schema.ModelBuilderPlugin;
import springfox.documentation.spi.schema.contexts.ModelContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger.common.SwaggerPluginSupport;
@Log
@Component
@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER + 1008)
public class SwaggerDefinitionAddin implements ModelBuilderPlugin {
@Autowired
TypeResolver resolver;
Map<String, ModelProperty> cityAddinMap = new HashMap<String, ModelProperty>();
@Override
public boolean supports(DocumentationType delimiter) {
return DocumentationType.SWAGGER_2.equals(delimiter);
}
private Class<?> forClass(ModelContext context) {
return resolver.resolve(context.getType()).getErasedType();
}
@Override
public void apply(ModelContext modelContext) {
if(forClass(modelContext) == City.class){
modelContext.getBuilder().id("TEST").properties(????).build();
}
}
}
exempleについて私は、この定義があります。
"definitions": {
"City": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"postalCode": {
"type": "integer",
"format": "int32"
}
}
},
を、私はしたい:
"definitions": {
"City": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"name": {
"type": "string"
},
"postalCode": {
"type": "integer",
"format": "int32"
},
"meteo": {
"$ref": "#/definitions/Meteo"
}
}
},
定義にmeteo属性を追加できますか? この場合、私の目標はアノテーションを使わずにプログラムで属性を追加することです。