如何使用Springfox在swagger2中添加自定义注释?

时间:2017-06-05 12:58:47

标签: java spring-mvc swagger-2.0 springfox

我正在使用swagger2,我想创建新的@ApiSepecificationInfo注释,这应该在swagger2 doc的自动生成器中考虑(如果我点击Gradlw generatordoc)

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiSpecificationInfo {
   String name();
   String description();
}

请允许我这是否可能?

1 个答案:

答案 0 :(得分:1)

您可以通过实现springfox plugins来执行自定义注释处理。

如果您实现 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以供参考。