無法從Go 中的GetConfiguration API 呼叫檢索項目類別資訊
REST API 呼叫
GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory]REST API 呼叫
{ "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0, "itemCategory": { "categoryCode": "trusted_platform_module", "id": 390, "name": "Server Security", "quantityLimit": 1, "sortOrder": 0 } }填充的Product_Package_Order_Configuration 物件中的itemCategory 字段,如以下範例輸出:
package main import ( "fmt" "encoding/json" "github.com/softlayer/softlayer-go/session" "github.com/softlayer/softlayer-go/services" ) func main() { username := "set-me" apikey := "set-me" sess := session.New(username, apikey) sess.Debug = true service := services.GetProductPackageService(sess) mask := "itemCategory" result, err := service.Mask(mask).Id(257).GetConfiguration() if err != nil { fmt.Printf("\n Unable to retrieve config:\n - %s\n", err) return } jsonFormat, jsonErr := json.MarshalIndent(result, "", " ") if jsonErr != nil { fmt.Println(jsonErr) return } fmt.Println(string(jsonFormat)) }但是,當使用Go 程式語言進行相同的呼叫時,儘管在物件遮罩中指定了itemCategory 仍為空,如以下程式碼片段所示:
Sample entry: { "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
範例輸出顯示itemCategory 欄位未填充,儘管已包含在物件中遮罩:
解決方案:sess := session.New(username, apikey)問題是由REST 和XMLRPC 端點之間的差異引起的。所提供的程式碼目前已針對 XMLRPC 端點進行配置,如網域、使用者和 apiKey 參數的存在所示。若要使用 REST 端點,請將此部分程式碼中的
endpoint := "https://api.softlayer.com/rest/v3" sess := session.New(username, apikey, endpoint)替換為:透過使用 REST 端點,您可以按預期存取 itemCategory 資訊。
以上是儘管在物件遮罩中指定了,但為什麼在 Go 中使用 GetConfiguration API 呼叫時 itemCategory 欄位為空?的詳細內容。更多資訊請關注PHP中文網其他相關文章!