【问题标题】:How to add custom annotation in swagger2 using with Springfox?如何使用 Springfox 在 swagger2 中添加自定义注释?
【发布时间】:2017-11-06 06:15:24
【问题描述】:

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

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

请问这可能吗?

【问题讨论】:

    标签: java spring-boot spring-mvc swagger-2.0 springfox


    【解决方案1】:

    可以通过实现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

    【讨论】:

    • 我相信您的代码中有错误。它应该是 Optional methodAnnotation = ...
    • 另外,重要信息:注释必须具有运行时保留。否则,大摇大摆是看不到的。
    猜你喜欢
    • 2017-07-09
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 1970-01-01
    相关资源
    最近更新 更多