>  기사  >  백엔드 개발  >  객체 마스크에 지정되었음에도 불구하고 Go에서 GetConfiguration API 호출을 사용할 때 itemCategory 필드가 비어 있는 이유는 무엇입니까?

객체 마스크에 지정되었음에도 불구하고 Go에서 GetConfiguration API 호출을 사용할 때 itemCategory 필드가 비어 있는 이유는 무엇입니까?

DDD
DDD원래의
2024-11-16 02:38:03364검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.