2017-06-09 2 views
1

Ich arbeite an Microservices mit Spring-Boot-1.4.5. Wir setzen wenige Header in MDC, während die Interaktion zwischen Microservices aufgetreten ist. Diese Header sind in den Microservices/Anwendungen üblich. In jeder Anwendung gibt es einen Interceptor, der nach diesen Headern sucht, wenn er nicht vorhanden ist, erreicht der Anruf den Controller nicht. Also für alles funktioniert gut. Das Problem ist, dass jede Anwendung oder Dienste eine swagger-UI (swagger-ui: 2.6.1) aussetzt.Spring Boot Swagger globale Header für eine Anwendung konfigurieren

Ich kann Swagger-Ui und alle Endpunkte in der Anwendung sehen, aber ich weiß nicht, wie das globale Headerfeld unter jedem Endpunkt angezeigt wird.

Wie wird Swagger angepasst, um diese globalen Header unter jedem Endpunkt anzuzeigen? Irgendwelche Hilfe oder Hinweis würde nennenswert sein, auch ich habe google durchsucht und andere Beiträge gesehen, die nicht nützlich sind, oder ich konnte die Dinge nicht richtig begreifen.

Antwort

0

Um globale Parameter festzulegen, verwenden Sie ParameterBuilder, um springfox.documentation.service.Parameter zu erstellen, und legen Sie es auf globalOperationParameters fest.

@Bean 
    public Docket api() { 
     Parameter headerParam = new ParameterBuilder().name("TenantId").defaultValue("microservices").parameterType("header") 
       .modelRef(new ModelRef("string")).description("Tenant Identity").required(true).build(); 

     return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) 
       .globalOperationParameters(Arrays.asList(headerParam)) 
      .select()         
      .apis(RequestHandlerSelectors.basePackage("com.app"))    
      .paths(PathSelectors.any())       
      .build(); 

    } 
Verwandte Themen