Masalah:
Apabila memanggil GET https://api.softlayer.com/rest/v3/SoftLayer_Product_Package/257/getConfiguration?objectMask=mask[itemCategory], objek ItemCategory diisi dalam REST, tetapi tidak di Golang, walaupun mengisytiharkannya dalam topeng.
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 }
Sampel output:
{ "id": 7167, "isRequired": 0, "itemCategoryId": 390, "orderStepId": 1, "packageId": 257, "sort": 0 }
Penyelesaian:
Isu timbul kerana titik akhir lalai untuk SoftLayer API dalam Go ialah XMLRPC, yang tidak menyokong mendapatkan semula objek ItemCategory. Untuk membetulkannya, tukar kepada titik akhir REST dengan mengemas kini konfigurasi sesi:
endpoint := "https://api.softlayer.com/rest/v3" // Create a session sess := session.New(username, apikey, endpoint)
Ini sepatutnya mengisi objek ItemCategory dalam respons API seperti yang dijangkakan.
Atas ialah kandungan terperinci Mengapa objek ItemCategory tidak diisi dalam panggilan GetConfiguration Golang walaupun diisytiharkan dalam topeng?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!