iT邦幫忙

2023 iThome 鐵人賽

DAY 24
0
Kotlin

Kotlin魔法:Spring Boot 3的fp奇幻冒險系列 第 24

[城鎮] Kotlin spring boot 如何打到外部系統Api? 要怎麼選擇?

  • 分享至 

  • xImage
  •  

前情提要

我們昨天介紹了如何把快速的Redis使用kotlin來串接,今天我們要來想像一個情景,假設我們的系統依賴於外部系統,對方開出了Api spec,讓我們打他們的api來取得資料,對他們來說,我們會打到他們的api,就像是前端打後端的api一樣。

有甚麼工具可以選呢?

找到有這幾種方法OkHttp、Feign、RestTemplate、WebClient這四種方式,那麼我們就快速了解一下這四種我們可以怎麼選擇吧!

OkHttp

  • HTTP/2 支援允許對同一主機的所有請求共享套接字。
  • 連線池可減少請求延遲(如果 HTTP/2 不可用)。
  • 透明 GZIP 壓縮縮小了下載文件大小。
  • 回應快取完全避免了網路重複請求。

在網路不穩定的情況下,OkHttp 會堅持不懈:它會在常見的連接問題發生時默默地恢復連接(就是會在打不到時默默地重打幾次嗎!?)。如果我們的服務有多個 IP 位址,如果第一個連線失敗,OkHttp會嘗試打其他的位址。OkHttp 支援現代的TLS特性(TLS 1.3、ALPN、憑證固定)。

Feign

Feign是聲明式Web服務用戶端。並且集成於Spring Cloud,還有減少模板式的HTTP請求程式碼,提高我們的開發效率。而且與Spring Boot可以輕鬆的整合再一起。

聲明式就是Functional programing的精隨了!在意的點不是怎麼做!而是做什麼,像是請伸出手,幫我點個讚!這就是命令式,而聲名式則是請給我個讚,在意的點不一樣,一個是有詳細的步驟及操作,一個只在意Input與Output的type。

總結

今天知道了兩種不同kotlin可以打api的套件!因為聲明式的關係,感覺Feign是個可以試試看的玩具。

參考資料

https://square.github.io/okhttp/
https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html


上一篇
[小城鎮] Kotlin 與 Redis
下一篇
[城鎮] WireMock 模仿金屬!
系列文
Kotlin魔法:Spring Boot 3的fp奇幻冒險30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言