问题:
调用 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 响应中的 ItemCategory 对象。
以上是尽管在掩码中声明了 ItemCategory 对象,但为什么在 Golang 的 GetConfiguration 调用中未填充 ItemCategory 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!