Kashibuchi’s blog

勉強のこと、趣味のこと、日々のこと

SpringBoot3(Spring6)でのAPI呼び出し(HTTP Interface)について

WebClientかあ、Reactor難しいなあ……ちょっと楽できないかなあ。

なんてことを思っていたら、

docs.spring.io

「1.3. HTTP Interface」にWebClientによるノンブロッキングを意識しない書き方があるやんけと。

具体的な書き方は

tech-blog.yayoi-kk.co.jp

ik.am

を参照していただくとして、自分ではこれから別の気になる部分の検証をしようかなと。 後日更新します。

やっておきたいこと

  • HTTP Interfaceを使用してブロッキングな戻り値でAPIのレスポンスを得る際、
    呼び出し先のAPI応答時間が長い場合、HTTP Interface内部で動作しているWebClientのスレッドは枯渇して待機時間が伸びてしまうようなことはないのか?
    • 結局WebClientのMonoやFluxと格闘する可能性が出てくる。

とりあえずわかっている問題点①

github.com ↑にあるとおり、@HttpExchangeに指定するURLにapplication.propertiesの内容をセットできない。 回避策は上記のやり取りにあるとおり↓のやり方なんだけど、

github.com

API呼び出しの際にパラメータ扱いしたくないパスまで渡したくはないなあ…。

とりあえずわかっている問題点①

異なるドメインAPIを複数使用したい場合、HttpServiceProxyFactoryのBeanを複数作りたいが、無理っぽい。 WrapしたBeanを作って使用したらいけるんじゃないかなあ…なんて。

github.com