当我通过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?
有没有办法从开票项目到资源?或者唯一的选择是从资源转到结算项目?我期望的是获取基于日期范围的顶级发票,然后为每个发票项目获取相关资源。今天我没有把它与资源联系起来。我希望能够为此使用resourceTableId,但不想依赖可能消失的东西。 –
唯一的办法是从资源到结算项目,这是有道理的,因为当资源被取消时,它将从数据库中删除,并且只保留结算项目,如果您尝试从取消的结算项目访问资源将得到空指针错误。 –