개발자는 기록이 답이다

패스트캠퍼스 환급챌린지 25일차 미션 (2월 25일) :  Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기 본문

패스트캠퍼스

패스트캠퍼스 환급챌린지 25일차 미션 (2월 25일) :  Spring Webflux 완전 정복 : 코루틴부터 리액티브 MSA 프로젝트까지 강의 후기

slow-walker 2024. 2. 25. 22:13

HttpHandler

  • ServerHttpRequest와 ServerHttpResponse를 인자로 받고
  • 응답을 돌려줘야 하는 시점을 Mono로 반환하는 함수형 인터페이스

 

HttpHandler를 통해 ServerHttpRequest로 요청을 확인할 수 있을 것이고, ServerHttpResponse로 원하는 결과를 내보낼 수 있다.

Mono의 void로 값을 반환함으로써 특정 시점을 알려줄 수 있다

그렇다면 ServerHttpRequest와 ServerHttpResponse에 대해서 알아보자.

 

ServerHttpRequest와 ServerHttpResponse

 

ServerHttpRequest와 ServerHttpResponse는 각각 ReactiveHttpInputMessage와 ReactiveHttpOutputMessage를 상속하고 있고 HttpRequest도 상속하고 있다.

 

이렇게 각각은 HttpMessage라는 인터페이스를 상속한다. 그렇다면 이 인터페이스만 살펴보면 어떤 메소드를 가질지 살펴볼 수 있다.

 

ServerHttpRequest

  • getPath: query를 포함하지 않는 구조화된 path 정보 제공
  • getQueryParams: decodedquery parameter map
  • getCookies:클라이언트가전달한기만가 능한쿠키map제공
  • mutate: uri, path, header 등 을 변경할 수 있는 ServerHttpRequest builder 제공
  • getBody:클라이언트가전달한request bodyFlux<DataBuffer> 로 수신. Flux 이기 때문에 여러 개의 DataBuffer 전달 가능
  • getHeaders: HttpHeaders 객체에 접가 능. HttpHeaders에서 header 추가, 수정, 삭 제기능제공
  • getMethod: http 요청 method
  • getURI: query string을 포함한 uri 정보를 제공

( 강의에서 나오는 내용이랑, 실제로 내가 직접 내부 구조 파본거랑 왜 메소드가 다른걸까..?

강의에서는 getQueryParams, getCookies, mutate 가 있지만, 내가 찾아봤을때는 다른 메소드가 있다. )

4

 


 

※ 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. https://bit.ly/48sS29N