ホームページ > バックエンド開発 > Golang > Go で GetConfiguration API 呼び出しを使用すると、オブジェクト マスクで指定されているにもかかわらず itemCategory フィールドが空になるのはなぜですか?

Go で GetConfiguration API 呼び出しを使用すると、オブジェクト マスクで指定されているにもかかわらず itemCategory フィールドが空になるのはなぜですか?

DDD
リリース: 2024-11-16 02:38:03
オリジナル
469 人が閲覧しました

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]
ログイン後にコピー

が設定されます返された 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))
}
ログイン後にコピー
サンプル出力は、itemCategory フィールドがオブジェクトに含まれているにもかかわらず、値が入力されていないことを示しています。マスク:

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)
ログイン後にコピー
REST エンドポイントを使用すると、意図したとおり itemCategory 情報にアクセスできます。

>

以上がGo で GetConfiguration API 呼び出しを使用すると、オブジェクト マスクで指定されているにもかかわらず itemCategory フィールドが空になるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート