gpt4 book ai didi

swagger - 如何向 SpringFox 生成的 Swagger json 添加自定义字段?

转载 作者:行者123 更新时间:2023-12-02 17:07:27 32 4
gpt4 key购买 nike

我正在尝试将字段 externalDocs 添加到 generated Json来自 Springfox:

"externalDocs": {
"description": "find more info here",
"url": "https://swagger.io/about"
},

阅读 SpringFox 文档,我了解到我需要创建一个 plugin 来扩展 SpringFox 功能并添加此字段。我试过:

@Component
@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER + 1002)
@Slf4j
public class ExternalDocSwaggerConfiguration implements ApiListingBuilderPlugin {

@Override
public void apply(final ApiListingContext apiListingContext) {

ObjectVendorExtension ext = new ObjectVendorExtension("externalDocs");
ext.addProperty(new StringVendorExtension("description", "Link externo"));
ext.addProperty(new StringVendorExtension("url", "https://swagger.io/about"));
apiListingContext.apiListingBuilder().extensions(
Collections.singletonList(ext)); // extensions does not exist
}

@Override
public boolean supports(final DocumentationType documentationType) {
return true;
}
}

我期待添加扩展,如图所示 here使用 OperationBuilderPlugin,但是 apiListingBuilder 上没有 extensions 方法。

那么,我如何使用 SpringFox 将此标记添加到生成的 Swagger Json 的根目录中?

最佳答案

2.7.0版本新增this feature .

要添加此字段externalDocs,您可以使用Docket 中的extensions 方法:

@Bean
public Docket customImplementation() {

ObjectVendorExtension ext = new ObjectVendorExtension("externalDocs");
ext.addProperty(new StringVendorExtension("description", "Link externo"));
ext.addProperty(new StringVendorExtension("url", "https://swagger.io/about"));

return new Docket(DocumentationType.SWAGGER_2)
.extensions(Collections.singletonList(ext))
.apiInfo(apiInfo())
.securitySchemes(newArrayList(apiKey()))
.pathMapping("/api")
.securityContexts(newArrayList(securityContext())).select()
.apis(getPackages())
.paths(PathSelectors.any())
.build();
}

关于swagger - 如何向 SpringFox 生成的 Swagger json 添加自定义字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50971063/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com