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