2017-06-05 1291 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僅供參考。

相關問題