Artikelkategorieinformationen können nicht vom GetConfiguration-API-Aufruf in Go abgerufen werden
Der REST-API-Aufruf
GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory]
wird ausgefüllt das Feld „itemCategory“ im zurückgegebenen Objekt „Product_Package_Order_Configuration“, wie im folgenden Beispiel dargestellt Ausgabe:
{ "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 } }
Wenn Sie jedoch die Programmiersprache Go verwenden, um denselben Aufruf durchzuführen, bleibt itemCategory leer, obwohl es in der Objektmaske angegeben ist, wie im folgenden Codeausschnitt gezeigt:
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)) }
Die Beispielausgabe zeigt, dass das Feld „itemCategory“ nicht ausgefüllt ist, obwohl es im Objekt enthalten ist Maske:
Sample entry: { "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
Lösung:
Das Problem entsteht durch eine Diskrepanz zwischen den REST- und XMLRPC-Endpunkten. Der bereitgestellte Code ist derzeit für den XMLRPC-Endpunkt konfiguriert, was durch das Vorhandensein der Parameter domains, user und apiKey angezeigt wird. Um den REST-Endpunkt zu verwenden, ersetzen Sie diesen Abschnitt im Code:
sess := session.New(username, apikey)
durch:
endpoint := "https://api.softlayer.com/rest/v3" sess := session.New(username, apikey, endpoint)
Durch die Verwendung des REST-Endpunkts können Sie wie vorgesehen auf die itemCategory-Informationen zugreifen.
Das obige ist der detaillierte Inhalt vonWarum ist das Feld „itemCategory' leer, wenn der API-Aufruf „GetConfiguration' in Go verwendet wird, obwohl es in der Objektmaske angegeben ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!