iT邦幫忙

2022 iThome 鐵人賽

DAY 27
0
自我挑戰組

分享自己的知識及生活管理系統 系列 第 27

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

  • 分享至 

  • xImage
  •  

文章同步發佈於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


上一篇
建立簡易版imgur - (建立http client interface) Day26
下一篇
建立簡易版imgur - (建立PCloud Interface) Day28
系列文
分享自己的知識及生活管理系統 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言