2016-09-27 99 views
0

尽管我在请求标题(967)中设置了Compavility版本,但在进行调用时(GeteBayDetails在这种情况下),响应版本高于我需要并且需要的版本(979)。这些适用于我目前正在开发的应用程序,甚至API测试工具。有什么我失踪了吗?或者响应中的版本标签与可兼容性级别无关?Ebay API版本覆盖?

部首:

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

你所看到的是正常的行为,因为响应将始终包含最新的API架构,可以为您的请求提供服务。对于给定的特定请求,我遇到很多调用,其中没有适用的执行请求的模式和执行模式之间的差异。此外,返回的“可以为API请求提供服务的最新模式版本”行为是,您可以如何确定是否可以安全地提升兼容级别,因为支持定期下降。

当然,当API的发布说明中响应的模式低于最新的模式时,您知道您处于某种情况,您必须更改代码以反映已弃用或已更改的内容在可以为您的特定请求提供服务的最后一个模式的支持结束之前。

这个eBay DTS文章提到这个Information in the API Response 以及通过eBay API模式版本化过程。

此外,请务必在XML POST请求使用标记指定的请求本身的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> 

希望这会有帮助