Problem:
Beim Aufruf von GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory], das ItemCategory-Objekt wird in REST gefüllt, aber nicht in Golang, obwohl es in der Maske deklariert wurde.
import ( "github.com/softlayer/softlayer-go/services" ) // ... // Object-Mask to get specific Vlan's information mask := "itemCategory" // Call to getNetworkVlans in order to retrieve vlans according to filter. result, err := service.Mask(mask).Id(257).GetConfiguration() if err != nil { fmt.Printf("\n Unable to retrieve config:\n - %s\n", err) return }
Probe Ausgabe:
{ "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
Lösung:
Das Problem tritt auf, weil der Standardendpunkt für die SoftLayer-API in Go XMLRPC ist, das das Abrufen des ItemCategory-Objekts nicht unterstützt. Um dies zu beheben, wechseln Sie zum REST-Endpunkt, indem Sie die Sitzungskonfiguration aktualisieren:
endpoint := "https://api.softlayer.com/rest/v3" // Create a session sess := session.New(username, apikey, endpoint)
Dadurch sollte das ItemCategory-Objekt in der API-Antwort wie erwartet gefüllt werden.
Das obige ist der detaillierte Inhalt vonWarum wird das ItemCategory-Objekt im GetConfiguration-Aufruf von Golang nicht aufgefüllt, obwohl es in der Maske deklariert ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!