Alamofire – APIRouter

 -  -  252

Alamofire – APIRouter

# 起

Alamofire 相信開發 iOS 的人都不陌生,就算沒用過也聽,非常好用的一個第三方網路處理套件,網路上也有非常多關於 Alamofire 的封裝,google alamofire router 的教學文章也是一大堆。

大部分的文章看起來都會像這樣:

# 承

假設今天我們是的 APP 只有需要呼叫 十幾支 API ,這樣的寫法或許感覺不到什麼問題,但是當 API 的數量增加到 幾十支 的時候,就會發現整個 router 非常的混亂,每次增加一支 API ,就需要把整個檔案重頭滾動到尾,一個 http request 的 URL、http method、 parameters,散落在檔案的各處,不管是新增還是修改都極為麻煩。

# 轉

後來在網路上發現了一個更好的寫法,但原文找不到了,後來我憑著印象重現了當初看到的文章。

這邊應該是使用了 工廠模式(factory pattern)

我把 enum 改成了 struct ,然後一樣 confirm URLRequestConvertible ,並實作 asURLRequest() ,然後使用 static func create 這個 struct。

其中最後的 model.convertToParameter() 是自己宣告 & 實作的 protocol

假設 model 沒有特殊的變化,就可以使用預設的 func convertToParameter() ,如果今天 model 與 api 的參數對應不起來,也可以 model 自己實作這個 func 來客製參數的結構。

# 合

所以我們把一個 http request 的 URL、http method、 parameters… 的資訊,通通寫在一個 func 了,是不是清楚許多R。

2 recommended
comments icon 0 comments

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料