본문 바로가기
IT/Java

openfeign에서 header에 값 추가

by 성준하이 2024. 4. 24.
반응형

RESTAPI 를 하기 위해서 openfeign 을 사용할 경우도 있다.

openfeign 에 대해서는 참고 포스팅 참고 바란다.

 

RESTAPI를 사용하려면 헤더값을 종종 셋팅해주곤 해야하는데 그 방법에 대해서 다뤄보려고 한다.

 

parameter나 requestbody는 openfeign 에서

@RequestParam / @RequestBody 로 설정이 가능하지만 헤더값은 RequestMapping annotation에 같이 명시를 해준다.

 

아래 예시코드를 보면

  • header 를 하나만 추가하고자 할 경우
..이상 생략
@RequestMapping(value = "/list/1", method = RequestMethod.GET, headers = "header1=value1")
    Member find();
..이하 생략
  • header 를 여러개를 추가하고자 할 경우
..이상 생략
@RequestMapping(value = "/list/1", method = RequestMethod.GET, headers ={"header1=value1", "header2=value2"})
    Member find();
..이하 생략

 

만약 모든 feign에 공통적으로 추가를 할 경우

RequestInterceptor 를 사용한다.

아래 코드처럼 따로 인터페이스를 구현하고

@RequiredArgsConstructor
public class AuthRequestInterceptor implements RequestInterceptor {

    private final TokenService tokenService;

    @Override
    public void apply(RequestTemplate template) {
        template.header("Authorization", tokenService.getToken());
    }
}

 

해당 Interceptor를 Bean 등록 해주면 된다.

@Configuration
public class FeignConfig {

    @Bean
    public AuthRequestInterceptor feignInterceptor() {
        return new AuthRequestInterceptor();
    }
}

 

그리고 feign 요청시 configuration에 추가한다.

..이상 생략
@FeignClient(name = "testClient", url = "http://localhost:8080", configuration = FeignConfig.class)
public interface TestClient {

@RequestMapping(value = "/list/1", method = RequestMethod.GET, headers ={"header1=value1", "header2=value2"})
    Member find();
..이하 생략

참고 포스팅

https://thenicesj.tistory.com/469

 

openfeign 이란?

간단하게 소개를 하면 다음과 같다. REST Call을 위해 호출하는 클라이언트를 보다 쉽게 작성할 수 있도록 도와주는 라이브러리 OpenFeign은 동일한 기능을 하는 RestTemplate 대비 interface를 작성하고 an

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

줄바꿈 하기 (\n, \r, \r\n 의 차이) / System.lineSeparator()  (31) 2024.04.30
Workbook 사용법  (20) 2024.04.28
IncorrectResultSizeDataAccessException  (23) 2024.04.23
@RequestPart?  (22) 2024.04.22
File To MultipartFile / MultipartFile To File  (29) 2024.04.21

댓글