如何使用 Springfox 在 swagger2 中添加自定义注释?
How to add custom annotation in swagger2 using with Springfox?
我正在使用 swagger2,我想创建新的 @ApiSepecificationInfo 注释,这应该在 swagger2 文档的自动生成器中考虑(就像我点击 Gradlw generatordoc)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiSpecificationInfo {
String name();
String description();
}
请问这可能吗?
可以通过实现springfoxplugins进行自定义注解处理。
如果您实现 OperationBuilderPlugin 接口,springfox 将为您提供所需的所有信息。
@Component
@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER)
public class OperationBuilderPluginImpl implements OperationBuilderPlugin {
@Override
public void apply(OperationContext context) {
Optional<ApiOperation> methodAnnotation = context.findAnnotation(ApiSpecificationInfo.class);
if (methodAnnotation.isPresent()) {
ApiSpecificationInfo apiSpecificationInfo = methodAnnotation.get();
// do your processing here
context.operationBuilder().notes(apiSpecificationInfo.name());
}
}
@Override
public boolean supports(DocumentationType delimiter) {
return SwaggerPluginSupport.pluginDoesApply(delimiter);
}
}
参考github。
我正在使用 swagger2,我想创建新的 @ApiSepecificationInfo 注释,这应该在 swagger2 文档的自动生成器中考虑(就像我点击 Gradlw generatordoc)
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiSpecificationInfo {
String name();
String description();
}
请问这可能吗?
可以通过实现springfoxplugins进行自定义注解处理。
如果您实现 OperationBuilderPlugin 接口,springfox 将为您提供所需的所有信息。
@Component
@Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER)
public class OperationBuilderPluginImpl implements OperationBuilderPlugin {
@Override
public void apply(OperationContext context) {
Optional<ApiOperation> methodAnnotation = context.findAnnotation(ApiSpecificationInfo.class);
if (methodAnnotation.isPresent()) {
ApiSpecificationInfo apiSpecificationInfo = methodAnnotation.get();
// do your processing here
context.operationBuilder().notes(apiSpecificationInfo.name());
}
}
@Override
public boolean supports(DocumentationType delimiter) {
return SwaggerPluginSupport.pluginDoesApply(delimiter);
}
}
参考github。