首頁 > 後端開發 > Golang > 主體

儘管在物件遮罩中指定了,但為什麼在 Go 中使用 GetConfiguration API 呼叫時 itemCategory 欄位為空?

DDD
發布: 2024-11-16 02:38:03
原創
362 人瀏覽過

Why is the itemCategory field empty when using the GetConfiguration API call in Go, despite being specified in the object mask?

無法從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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板