1 回答

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