복붙노트

[SPRING] Spring + Springfox + 헤더 매개 변수

SPRING

Spring + Springfox + 헤더 매개 변수

@RequestMapping(...)
public Foo getFoo(@HeaderParam("header") final String header) {
    ...
}

위와 같이 @HeaderParam 메서드 매개 변수를 추가하면 springfox가이를 선택하고 swagger-ui를 보면 머리글 필드가 있습니다. 이것은 내가 원하는 것입니다. 메서드 자체에 매개 변수를 포함 할 필요없이이 헤더 매개 변수를 메서드 집합에 포함하도록 springfox에 지시 할 수있는 방법이 있습니까? 우리가 실제로하는 일은 헤더를 사용하는 서블릿 필터이며 swagger-ui를 통해 쉽게 설정할 수 있습니다.

해결법

  1. ==============================

    1.docket 정의에서 globalOperationParameters를 사용할 수 있습니다. 예 :

    docket 정의에서 globalOperationParameters를 사용할 수 있습니다. 예 :

    new Docket(...)
                .globalOperationParameters(
            Arrays.asList(new ParameterBuilder()
                .name("header")
                .description("Description of header")
                .modelRef(new ModelRef("string"))
                .parameterType("header")
                .required(true)
                .build()))
    

    자세한 내용은 설명서의 22 번을 참조하십시오.

  2. ==============================

    2.같은 것에 대한 한 가지 더 설명 된 답변 :

    같은 것에 대한 한 가지 더 설명 된 답변 :

    @Bean
        public Docket api() {
            //Adding Header
            ParameterBuilder aParameterBuilder = new ParameterBuilder();
            aParameterBuilder.name("headerName").modelRef(new ModelRef("string")).parameterType("header").required(true).build();
            List<Parameter> aParameters = new ArrayList<Parameter>();
            aParameters.add(aParameterBuilder.build());
            return new Docket(DocumentationType.SWAGGER_2).select()
                    .apis(RequestHandlerSelectors.any()).paths(PathSelectors.any()).build().apiInfo(apiInfo()).pathMapping("").globalOperationParameters(aParameters);
        }
    
  3. from https://stackoverflow.com/questions/36585643/spring-springfox-header-parameters by cc-by-sa and MIT license