如何基于http方法隐藏相关端点

时间:2015-12-08 11:40:12

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

    private Predicate<String> aggregationPaths() {
        return or(regex("/aggregationservice.*"),regex("/health"));
     }

此代码段将所有Spring Boot运行状况端点列为swagger文档。我想只显示Http GET方法。有没有人对此有任何想法?

2 个答案:

答案 0 :(得分:1)

您将创建基于RequestHandler

的谓词
 private Predicate<RequestHandler> onlyGets() {
    return new Predicate<RequestHandler>() {
          @Override
          public boolean apply(RequestHandler input) {
             return input.getRequestMapping()
                    .getMethodsCondition()
                    .getMethods()
                    .contains(RequestMethod.GET);
      }
    };
 }

并在api选择器中为您的文档添加谓词

 //....
 new Docket().select().apis(onlyGets())
 //...

答案 1 :(得分:1)

目前不推荐使用input.getRequestMapping()方法,而且它只是出于合法目的而在RequestHandler中。而不是这个,你可以使用:

 private Predicate<RequestHandler> onlyGets() {
    return new Predicate<RequestHandler>() {
          @Override
          public boolean apply(RequestHandler input) {
             return input.supportedMethods()
                    .contains(RequestMethod.GET);
      }
    };
 }