Répondre

1

Vous créerez prédicats qui sont basés sur RequestHandler

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

et ajoutez le prédicat dans votre sélecteur de api pour votre dossier

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

Dans mon cas, je l'ai utilisé actionneur de démarrage de printemps, qui montrera toutes les méthodes http par exemple: PUT, OPTIONS ..etc, je veux exposer http GET seulement sans nuire à d'autres services méthode GET d'extrémité, j'ai un autre service d'agrégation d'appel de point de terminaison, avez-vous une idée? tnx –

+0

Vous pouvez créer vos propres prédicats personnalisés basés sur RequestHandler. Tout comme 'onlyGets' vous pouvez créer votre propre combinaison avec ands ou ors, par exemple. 'Predicates.and (springEndpoints(), onlyGets())' –

1

Actuellement méthode input.getRequestMapping() est obsolète, et il est en RequestHandler juste pour fins de legay. Au lieu de cela, vous pouvez utiliser:

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