1 回答

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
生成的客戶端創(chuàng)建一個(gè)mypackage.GenericOpenAPIError結(jié)構(gòu)體,該結(jié)構(gòu)體以 的形式返回error,其中mypackage是客戶端的包名稱。它將 HTTP 錯(cuò)誤主體存儲(chǔ)在GenericOpenAPIError.body可由Body() []byte函數(shù)訪問的屬性中。但是,由于函數(shù)定義返回error不支持該Body()函數(shù)的錯(cuò)誤,因此需要先轉(zhuǎn)換錯(cuò)誤,然后才能訪問它。
以下是從生成的客戶端創(chuàng)建錯(cuò)誤的代碼:
if localVarHttpResponse.StatusCode >= 300 {
newErr := GenericOpenAPIError{
body: localVarBody,
error: localVarHttpResponse.Status,
}
要訪問 body 屬性,需要轉(zhuǎn)換錯(cuò)誤。例如:
data, resp, err := myclient.MyAPI.OperationId(context.Background())
if err != nil && resp.StatusCode >= 300 {
openAPIErr := err.(mypackage.GenericOpenAPIError)
fmt.Println(string(openAPIErr.Body()))
}
由于需要將其解碼為生成的客戶端包中的結(jié)構(gòu),因此將其作為輔助函數(shù)添加到客戶端包中會(huì)很有用。
- 1 回答
- 0 關(guān)注
- 115 瀏覽
添加回答
舉報(bào)