即使我在请求标题(967)中设置了Compavility版本,当我正在进行调用时(在这种情况下是GeteBayDetails),响应的版本高于我需要的版本(979)。这些适用于我正在开发的应用程序,甚至API测试工具。有什么东西我不见了吗?或者响应中的Version标记与Compability Level无关?
部首:
X-EBAY-API-SITEID:212
X-EBAY-API-COMPATIBILITY-LEVEL:967
X-EBAY-API-CALL-NAME:GeteBayDetails
体:
<?xml version="1.0" encoding="utf-8"?>
<GeteBayDetailsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<RequesterCredentials>
<eBayAuthToken>...</eBayAuthToken>
</RequesterCredentials>
</GeteBayDetailsRequest>
回复:
<?xml version="1.0" encoding="UTF-8"?>
<GeteBayDetailsResponse
xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2016-09-27T11:21:41.341Z</Timestamp>
<Ack>Failure</Ack>
<Errors>
<ShortMessage>Nieznany błąd.</ShortMessage>
<LongMessage>Nieznany błąd.</LongMessage>
<ErrorCode>17460</ErrorCode>
<SeverityCode>Error</SeverityCode>
<ErrorClassification>RequestError</ErrorClassification>
</Errors>
<Version>979</Version>
<Build>E979_INTL_API_18061441_R1</Build>
</GeteBayDetailsResponse>
PS。据我所知,由于更新版本的API,请求失败。之前的工作就像一个魅力。这就是为什么我要坚持967。
答案 0 :(得分:0)
您所看到的是正常行为,因为响应将始终包含可以为您的请求提供服务的最新API架构。对于给定的特定请求,我遇到许多调用,在请求的架构和执行架构之间没有适用的执行差异。此返回的最新架构版本可以为API请求提供服务&#34;行为是如何确定是否可以安全地提升兼容性级别,因为支持会定期下降。
当然,如果响应的模式低于API发行说明中的最新模式,那么您知道在某些情况下您必须更改代码以反映之前已弃用或更改的内容对可以为您的特定请求提供服务的最后一个模式的支持结束。
这篇eBay DTS文章提到了Information in the API Response 以及浏览eBay API架构版本控制过程。
另外,请确保XML POST请求使用 Version 标记在请求中指定API模式版本,而不仅仅是HTTP标头,如GeteBayDetails API文档的示例调用代码:
<?xml version="1.0" encoding="utf-8"?>
<GeteBayDetailsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<!-- Call-specific Input Fields -->
<DetailName> DetailNameCodeType </DetailName>
<!-- ... more DetailName values allowed here ... -->
<!-- Standard Input Fields -->
<ErrorLanguage> string </ErrorLanguage>
<MessageID> string </MessageID>
<Version> string </Version>
<WarningLevel> WarningLevelCodeType </WarningLevel>
</GeteBayDetailsRequest>
希望这有帮助