問題:
GET 呼び出し時https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory]、マスクで宣言しているにもかかわらず、ItemCategory オブジェクトは REST では設定されますが、Golang では設定されません。
import ( "github.com/softlayer/softlayer-go/services" ) // ... // Object-Mask to get specific Vlan's information mask := "itemCategory" // Call to getNetworkVlans in order to retrieve vlans according to filter. result, err := service.Mask(mask).Id(257).GetConfiguration() if err != nil { fmt.Printf("\n Unable to retrieve config:\n - %s\n", err) return }
サンプル出力:
{ "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
解決策:
この問題は、Go の SoftLayer API のデフォルトのエンドポイントが XMLRPC であり、ItemCategory オブジェクトの取得をサポートしていないために発生します。これを修正するには、セッション構成を更新して REST エンドポイントに切り替えます。
endpoint := "https://api.softlayer.com/rest/v3" // Create a session sess := session.New(username, apikey, endpoint)
これにより、期待どおりに API 応答に ItemsCategory オブジェクトが設定されます。
以上がマスクで宣言されているにもかかわらず、Golang の GetConfiguration 呼び出しで ItemCategory オブジェクトが設定されないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。