2017-04-04 56 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

唯一的办法是从资源到结算项目,这是有道理的,因为当资源被取消时,它将从数据库中删除,并且只保留结算项目,如果您尝试从取消的结算项目访问资源将得到空指针错误。 –