Чтение ответа API REST в PHP

Я пытаюсь прочитать Raven SEO Tools API. Это REST API, и в настоящее время он обслуживает резервное копирование данных как XML (или JSON, если я выбираю), когда я просто запрашиваю URL-адрес через веб-браузер. Каков наилучший способ получить ответ со своего сервера на мой собственный PHP-скрипт, чтобы я мог поиграть с ним.

Любая помощь очень ценится

ура

Если вам нужно только получить URL-адрес и проанализировать его информацию. Самый простой способ – комбинация curl / JSON. Обратите внимание, что разбор JSON быстрее, чем синтаксический анализ XML.

  1. http://www.php.net/manual/en/function.curl-exec.php
  2. http://www.php.net/manual/en/function.json-decode.php

Что-то простое:

$url = "http://api.raventools.com/api?key=B1DFC59CA6EC76FF&method=domains&format=json"; $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT, 4); $json = curl_exec($ch); if(!$json) { echo curl_error($ch); } curl_close($ch); print_r(json_decode($json)); 

Но если вам нужно вызвать другие методы из этого API, такие как DELETE / PUT и т. Д. Тогда для того, чтобы клиент REST на PHP был более изящным решением. Сравнение этих клиентов можно найти в PHP REST Clients

Я основал этот код специально для API Raven https://github.com/stephenyeargin/raventools-api-php

Образец кода:

 require 'path/to/raventools-api-php/raventools-api-php.class.php'; $Raven = new RavenTools( 'B1DFC59CA6EC76FF' ); $method = 'domains'; $options = array('format'=> 'json'); $responseString = $Raven->getJSON($method, $options); print_r(json_decode($responseString)); 

завивать

cUrl – инструмент командной строки для получения или отправки файлов с использованием синтаксиса URL.

 curl -o example.html www.example.com 

file_get_contents

 <?php $homepage = file_get_contents('http://www.example.com/api/parameters'); echo $homepage; ?> 

Класс HTTPRequest от Pecl – очень хороший клиент, я использовал его для нескольких проектов. http://pecl.php.net/package/pecl_http

Еще одним довольно крутым клиентом является клиент Buzz https://github.com/kriswallsmith/Buzz. Он также отлично сочетается с Symfony2, если это вас интересует 🙂

Вы можете использовать любой из них, но я думаю, что JSON является самым простым и беспроблемным, если вы не используете SimpleXML. Решение зависит от сложности ваших данных.

Учитывая, что JSON, возвращаемый API, действителен, вы можете преобразовать его в массив или объект с помощью функции json_decode () PHP.

 <?php # retrieve JSON from API here... # ie it is stored in $data as a string $object = json_decode($data); $array = json_decode($data, true); ?> 

В SimpleXML это будет следующим:

 <?php $object = simplexml_load_string($data); ?>