创建基于XML API调用的Guzzle服务定义

问题描述:

我是Guzzle的新手,我试图利用其服务定义。我能够以这种方式获得对eBay API的基本调用。创建基于XML API调用的Guzzle服务定义

$request = $client->post('', [ 
     'X-EBAY-API-COMPATIBILITY-LEVEL' => '807', 
     'X-EBAY-API-DEV-NAME' => 'my-dev-name', 
     'X-EBAY-API-APP-NAME' => 'my-app-name', 
     'X-EBAY-API-CERT-NAME' => 'my-cert-name', 
     'X-EBAY-API-SITEID' => '0', 
     'X-EBAY-API-CALL-NAME' => 'GeteBayOfficialTime', 
    ], 
    '<?xml version="1.0" encoding="utf-8"?> 
    <GeteBayOfficialTimeRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
    <RequesterCredentials> 
    <eBayAuthToken>AgAAAA**AQAAAA**</eBayAuthToken> 
    </RequesterCredentials> 
    </GeteBayOfficialTimeRequest>' 
); 

下一步是将其转换为服务定义。阅读文档,论坛等,我能够想出这个。

{ 
    "name": "eBay example", 
    "apiVersion": "2012-10-14", 
    "baseUrl": "https://api.sandbox.ebay.com/ws/api.dll", 
    "description": "it's the eBay API", 
    "operations": { 
     "GeteBayOfficialTime": { 
      "httpMethod": "POST", 
      "uri": "", 
      "responseClass": "GeteBayOfficialTime", 
      "summary": "Gets the official time according to eBay", 
      "data": { 
       "xmlRoot": { 
        "name": "GeteBayOfficialTime" 
       } 
      }, 
      "parameters": { 
       "RequesterCredentials": { 
        "location": "xml", 
        "type": "string" 
       } 
      } 
     } 
    }, 
    "models": { 
     "GeteBayOfficialTime": { 
      "type": "array", 
      "items": { 
       "type": "object", 
       "properties": { 
        "TiemStamp": { 
         "location": "xml", 
         "type": "string" 
        } 
       } 
      } 
     } 
    } 
} 

但是这是不正确的。我希望有人能够帮助完成这个例子以供参考。谢谢!

+0

你设法得到它的工作迈克?我处于类似的情况。 – input

这是参数应该如何看:

"parameters": { 
      "RequesterCredentials": { 
       "location": "xml", 
       "type": "array", 
       "items: { 
        "name" = "eBayAuthToken", 
        "type" = "string" 
       } 
      } 
      } 

这将是你的命令

$command = $client->getCommand("GeteBayOfficialTime", array("RequesterCredentials" => array("AgAAAA**AQAAAA**")));