Go の GetConfiguration API 呼び出しからアイテム カテゴリ情報を取得できません
REST API 呼び出し
GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory]
が設定されます返された Product_Package_Order_Configuration オブジェクトの itemCategory フィールド。次のサンプル出力に見られます:
{ "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 } }
ただし、Go プログラミング言語を使用して同じ呼び出しを行うと、次のコード スニペットに示すように、オブジェクト マスクで指定されているにもかかわらず 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)) }
Sample entry: { "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
解決策:
この問題は、REST エンドポイントと XMLRPC エンドポイント間の不一致によって発生します。提供されたコードは、ドメイン、ユーザー、および apiKey パラメーターの存在によって示されるように、現在 XMLRPC エンドポイント用に構成されています。 REST エンドポイントを使用するには、コード内のこのセクションを次のように置き換えます:sess := session.New(username, apikey)
endpoint := "https://api.softlayer.com/rest/v3" sess := session.New(username, apikey, endpoint)
>
以上がGo で GetConfiguration API 呼び出しを使用すると、オブジェクト マスクで指定されているにもかかわらず itemCategory フィールドが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。