文章同步發佈於https://kevinyay945.com/ironman2022/day27
在昨天將需要的function都設定好後,就可以開始進行開發的流程了
雖然說golang已經有原生的net/http可以發起請求了,但這邊還是先選擇resty 來作為這次開發的http client,這樣可以讓開發更加的快速
當然要使用前,還是要先安裝
go get github.com/go-resty/resty/v2
而在一開始,先建立一個function來New一個新的HttpClient
func NewHttpClient() *HttpClient {
return &HttpClient{}
}
透過這個function,就可以HttpClient內增加需要的預設值,而原先使用的對象也不需要更動程式碼,相當方便
接下來,就可以在其中放上resty的property
type HttpClient struct {
resty *resty.Client
}
func NewHttpClient() *HttpClient {
_resty := resty.New()
return &HttpClient{
resty: _resty,
}
}
接著,將之前測試的程式碼中宣告httpClient的部分改成
var _client IHttpClient = NewHttpClient()
如此,我們在Get的這個Method上就可以使用到resty的套件的功能了
func (h *HttpClient) Get(url string) (resp Response, err error) {
response, err := h.resty.R().Get(url)
resp.Body = response.Body()
return
}
此時,將之前完成的測試碼重新進行測試,就可以得到成功執行的內容了
依照此想法,也將SetAuthToken加進去後,程式碼如下
https://github.com/kevinyay945/my-imgur/tree/v0.4.0