2017-04-04 55 views
0

當我通過SoftLayer的API爲以下REST API中檢索SoftLayer_Billing_Item GET調用resourceTableId屬性:的SoftLayer API SoftLayer_Billing_Item返回其未在文檔中定義

https://api.softlayer.com/rest/v3/SoftLayer_Billing_Item/151376733 

結果包含中定義的所有的局部性質SoftLayer參考文檔。 http://sldn.softlayer.com/reference/datatypes/SoftLayer_Billing_Item

結果還會返回一個名爲resourceTableId的屬性,該屬性未在文檔中列出。 以上爲計費項目的resourceTableId值是28467033.

如果我使用的是在一個虛擬客戶API REST調用resourceTableId值,例如,

https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/28467033 

我得到生成計費資源的細節項目。我已經嘗試過其他的例子,包括硬件例子,並且都運行良好。將結算項目與生成項目相關聯是一種很好的方法。

但是,我將resourceTableId屬性包含在objectMask請求中時出現錯誤。響應說resourceTableId不是一個屬性。

下面是一個用掩碼查詢SoftLayer_Billing_Item的示例。

https://api.softlayer.com/rest/v3/SoftLayer_Billing_Item/151376733?objectMask=mask[id,hostName,domainName,resourceTableId] 

回來了

{ 
"error": "Property 'resourceTableId' not valid for 'SoftLayer_Billing_Item'.", 
"code": "SoftLayer_Exception_WebService_ObjectMask" 
} 

有沒有一種辦法,包括在objectMask請求resourceTableId?

回答

0

nope沒有辦法,事實上這是一個財產不應該顯示給客戶的問題(即使在文檔中不顯示財產),您可以同時使用該財產,但請記住財產可能是當他們決定解決這個問題時,不會再顯示。

將結算項目與軟件資源綁定的方式是通過結算項目ID,我的意思是您應該獲得調用方法getBillingItem的資源的結算項目或使用對象maks「mask [billingItem]」並驗證如果該值與您正在使用的結算項目相匹配,則此方法不像您要使用的方法那麼容易,但將來不會修改此方法。

Regards

+0

有沒有辦法從開票項目到資源?或者唯一的選擇是從資源轉到結算項目?我期望的是獲取基於日期範圍的頂級發票,然後爲每個發票項目獲取相關資源。今天我沒有把它與資源聯繫起來。我希望能夠爲此使用resourceTableId,但不想依賴可能消失的東西。 –

+0

唯一的辦法是從資源到結算項目,這是有道理的,因爲當資源被取消時,它將從數據庫中刪除,並且只保留結算項目,如果您嘗試從取消的結算項目訪問資源將得到空指針錯誤。 –