首页 >后端开发 >Golang >尽管在掩码中声明了 ItemCategory 对象,但为什么在 Golang 的 GetConfiguration 调用中未填充 ItemCategory 对象?

尽管在掩码中声明了 ItemCategory 对象,但为什么在 Golang 的 GetConfiguration 调用中未填充 ItemCategory 对象?

Susan Sarandon
Susan Sarandon原创
2024-11-22 14:16:48965浏览

Why is the ItemCategory object not populated in Golang's GetConfiguration call despite being declared in the mask?

无法从 Golang 中的 GetConfiguration 调用获取 ItemCategory 信息

问题:
调用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn