如何与Web XML/JSON API交互?

hel*_*llo 7 php xml api json

我正在学习php/xml/json以及其他所有内容,我正在通过API来处理某些事情.他们有文档,但我仍然没有得到API的工作方式.他们给你一个GET链接和API密钥,我知道你应该把API密钥放在请求链接中

我该如何称呼此链接?当它给你一个样本响应时它意味着什么?

如果您的请求正确,是否应该响应?

我有点clueluess?

谢谢

dgi*_*and 16

在PHP中你可能有这样的东西:

// EDIT: only need to use urlencode() on user supplied variables
//$url = urlencode("http://xyz.com/api?apikey=foo&v1=bar&v2=baz");
$url = "http://xyz.com/api?apikey=foo&v1=bar&v2=baz";
$response = file_get_contents($url);
Run Code Online (Sandbox Code Playgroud)

当你访问时,$response它将包含一串xyz.com输出的信息$url(如果你$url直接访问,你会看到它).

您的下一个工作是$response根据其数据结构(例如XML,JSON等)进行解析,以便其余代码可以使用它.

有几个用于解析XML或JSON的PHP库.就个人而言,我更喜欢使用SimpleXMLElement,json_decode()并且包含在PHP 5> = 5.2.0中.

根据API,如果它不理解$url您在解析响应后可以检查的请求,它可能会向您发送某种错误代码/响应结构.

如果$response返回false,那么通常会出现一些与之通信的错误$url.

我发现考虑这些XHR请求的直观方式是将参数(GET参数)传递给函数(API URL).API URL的响应类似于函数的return语句.

更新:

OP在评论中建议的Groupon API示例:

$apikey = "client_id=abcd1234567890";
$division = "division_id=chicago";
$url = "http://api.groupon.com/v2/deals?" . implode("&", array($apikey, $division));
$response = file_get_contents($url);
$deals = json_decode($response, true);

foreach($deals['deals'] as $deal){
    $format = 'Deal: <a href="%s">%s</a><br/>';
    echo sprintf( $format, $deal['dealURL'], $deal['announcementTitle']);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将打印出芝加哥地区所有交易标题和网址的列表.如果查看Sample JSON ResponseGroupon API页面上的部分,它将为您提供将映射到关联数组的整个数据结构$deals.

如果GET用户提供API的任何参数(例如,从Web表单提供),您将需要执行类似的操作$division = "division_id=" . urlencode($user_input);.