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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿