2017-06-05 1288 views
0

我使用swagger2,我想创造新的@ApiSepecificationInfo注释,这应该在swagger2文档的自动生成器来考虑(比如如果我打Gradlw generatordoc)如何在Swagger2中使用Springfox添加自定义注释?

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

请让我这是可能或不?

回答

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仅供参考。

相关问题