Skip to main content

Day27 建立簡易版imgur - (實作http client)

在昨天將需要的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