현재 진행하고 있는 프로젝트 구조
cloud gateway 내부 역할을 구체적으로 보여주고 있는 사진이다.
1. Gateway Handler Mapping : 클라이언트로부터 어떤 요청이 들어왔는지 요청 정보를 받는다.
2. Predicate : 어떠한 이름으로 요청이 들어왔는지 조건을 분기처리 해준다.
3. PreFilter :사전 처리 필터
4. Post Filter : 사후 처리 필터
Filter를
1 : Java code를 이용해서 만드는 방법
2 : Property 파일(yml)을 이용해서 만드는 방법
2가지를 진행해본다.
추가해볼 필터
@Bean을 RouteLocator로 등록하게 되면
yml로 라우팅하는 것과 동일한 역할을 하게 된다.
해당코드에서는 익명클래스인 람다식으로 코드를 간결하게 진행했다.
path : 요청이 들어올 조건 경로 지정
addRequestHeader : 요청 헤더에 파라미터값을 추가
addResponseHeader : 응답 헤더에 파라미터값을 추가
즉, 클라이언트가 추가한 것은 아니지만, Cloudgateway 단에서 자유롭게 추가 작업을 진행하는 예제이다.
.uri : 앞에 작업이 다 끝나고 이제 이동할 주소를 의미한다.
Controller 수정
Filter에서 first-request.. 와 같은 값을 요청시 헤더에 넣어주므로,
@RequestHeader 어노테이션을 통해 해당 값이 실제로 헤더에 들어왔는지 확인해본다.
@RequestHeader : 요청헤더값을 컨트롤러 메서드 파라미터로 전달하는 어노테이션이다.
Test 방법
first-service가 제대로 호출되어서
first-request-header값을 찍는 것 확인 해보기.
response헤더값도 어떤 값이 추가되었는지 확인 해보기.
학습 페이지
www.inflearn.com
'스프링 스터디 (인프런) > API GATEWAY' 카테고리의 다른 글
Spring Cloud Gateway - Filter 적용 3 (0) | 2023.08.22 |
---|---|
Spring Cloud Gateway - Filter 적용2 (0) | 2023.08.12 |
Spring Cloud GateWay 세팅 (0) | 2023.07.30 |
Netflix Zuul Filter 적용하기 (0) | 2023.07.29 |
Netflix Zuul 프로젝트 생성 (0) | 2023.07.16 |