웹 개발/WebFlux
-
[WebClient] Content type 'application/octet-stream' not supported for bodyType='' 에러웹 개발/WebFlux 2023. 3. 15. 01:15
webClient를 사용중에 bodyToMono를 사용했더니 에러가 발생했다. // 대략 이런 코드 fun convertErrorResponse(clientResponse: ClientResponse): Mono { return clientResponse.bodyToMono(ErrorResponse::class.java) } 위의 코드처럼 사용하려고 했더니 발생한 에러문구 Content type 'application/octet-stream' not supported for bodyType='변환하려는 클래스' webClient 요청시 Content-Type을 application/json으로 붙여서 보내라는 해결법도 있었는데, 난 이미 그렇게 처리하고 있어서 그게 이유는 아닌듯했고, 내가 클라이언트일 ..
-
[WebFlux] publisher(발행) - subscriber(구독) 패턴에 대해서웹 개발/WebFlux 2020. 1. 24. 16:00
publisher(발행) - subscriber(구독)패턴에 대해서 처음 WebFlux를 썼을 때, publisher와 subscriber 모델의 개념을 이해하지 못해서 삽질을 많이했다. spring mvc로 동기식 개발을 할 때는 메서드 호출만 하면 결과값이 return 됐었다. 그러나, reactive하게 동작하는 WebFlux에서는 메서드만 호출해서는 아무 일이 일어나지 않는다. (reactive 선언문) 개념 publihser - subscriber패턴은 observer 디자인 패턴과 유사한 부분이 많다. 옵저버 패턴 위키피디아의 옵저버 패턴 설명을 보자. 옵서버 패턴(observer pattern)은 객체(subject)의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들(observers)의 목록을..
-
[WebFlux] query string에 담긴 String 파라미터를 localDate로 캐스팅하고 매핑하기웹 개발/WebFlux 2019. 12. 23. 14:22
get 방식 query string으로 파라미터를 넘겼을 때, controller에서 파라미터로 받는 object에 속한 field의 localDate 타입을 캐스팅하고 매핑해주기 이 방법을 찾게 된 계기는 클라이언트단에서 넘겨줄 파라미터가 많아서 하나하나 받으면 코드가 더러워질 것 같아 dto로 하나의 클래스를 만들기로 했다. 단순히 localDate 타입이 되어야하는 딱 하나의 파라미터를 받는다면, 아래처럼 짜면 쉽게 받아와졌다. (@DateTimeFormat을 이용하면 된다) 하나의 localDate형식의 파라미터를 받고 싶을 때, // 요청 url: http://localhost:8080/festivals?eventStartDate=2010-10-01 @GetMapping("/festivals")..
-
[WebFlux] StepVerifier and How to use it 해답 코드 - techio웹 개발/WebFlux 2019. 10. 29. 23:56
techio reactor StepVerifier 학습 사이트 techio에서 배울 수 있는 Reactor StepVerifier 학습 success코드 operator 참고 사이트 StepVerifier reference site 해답 코드 Verify Simple flux // TODO Use StepVerifier to check that the flux parameter emits "foo" and "bar" elements then completes successfully. void expectFooBarComplete(Flux flux) { StepVerifier.create(flux) .expectNext("foo") .expectNext("bar") .verifyComplete(); } V..
-
[WebFlux] Learn how to create Mono instances 해답 코드 - techio웹 개발/WebFlux 2019. 10. 22. 23:24
techio reactor Mono 학습 사이트 techio에서 배울 수 있는 Reactor 학습의 success 코드 operator 참고 사이트 Mono reference site 해답 코드 Empty Mono // TODO Return an empty Mono Mono emptyMono() { return Mono.empty(); } No Emission // TODO Return a Mono that never emits any signal Mono monoWithNoSignal() { return Mono.never(); } Create a Mono from an item // TODO Return a Mono that contains a "foo" value Mono fooMono() { re..
-
[WebFlux] Learn how to create Flux instances 해답 코드 - techio웹 개발/WebFlux 2019. 10. 21. 00:14
techio reactor Flux 학습 사이트 techio에서 배울 수 있는 Reactor 학습의 success 코드 동기 방식의 spring mvc 방식 개발만 하다 비동기 방식의 webflux로 개발하려니 개념적인 부분부터 이해가 어렵드아... 개인적으로 reactor 메인 레퍼런스 사이트의 Chapter 4까지는 읽어보고 시작하면 좋을 것 같다. Reactor 3 Main reference site operator 참고 사이트 Flux reference site 해답 코드 Empty flux // TODO Return an empty Flux Flux emptyFlux() { return Flux.empty(); } Flux from values // TODO Return a Flux that c..