我正在使用Product_Order.placeOrder方法订购许可证。问题是complexType和packageId是什么关系。我可以同时指定complexType和packageId吗?在哪里可以找到API文档?谢谢。
{'complexType': 'SoftLayer_Container_Product_Order_Software_License',
'quantity': xxx,
'packageId': xxx,
'prices': [{'id': xxx}]
}
答案 0 :(得分:0)
complexType使服务器知道您要发送的数据类型结构。 https://softlayer.github.io/article/soap/
每个WSDL都定义了特定服务的可用方法和 包括一个XSD文件,该文件定义了可用于 SoftLayer API。
重要的API标头,例如身份验证,初始化 参数和对象掩码作为SOAP发送到SoftLayer API 标头。每个呼叫标头都有一个关联的复杂类型。
调用placeOrder时,您需要发送 SoftLayer_Container_Product_Order 数据类型(基本orderData),并且某些产品/设备需要设置其他信息,但它们不在 SoftLayer_Container_Product_Order 中>,因为它们属于从 SoftLayer_Container_Product_Order 继承的另一种数据类型。
SoftLayer_Container_Product_Order_Software_License 继承自 SoftLayer_Container_Product_Order ,除非有必要的数据不属于 SoftLayer_Container_Product_Order 或否则,否则可能不需要设置complexType。你会例外。
packageId定义要订购所需产品时要发送的价格。现在,可以订购具有相同complexType但具有不同packageId的某些产品,例如硬件服务器(请参见placeOrder中的表):
|Product | Order Container | Package type
------------------------------------------------------------------------------------------------
|Bare metal server by CPU | SoftLayer_Container_Product_Order_Hardware_Server | BARE_METAL_CPU |
|Bare metal server by core| SoftLayer_Container_Product_Order_Hardware_Server | BARE_METAL_CORE|
建议同时设置 complexType 和 packageId ,这有助于服务器更快地处理请求。