Наш клиент дал мне REST API, к которому мне нужно обратиться с помощью PHP. Но на самом деле документация, предоставляемая с API, очень ограничена, поэтому я не знаю, как вызвать сервис.
Я попытался Google это, но единственное, что подошло, было уже просроченным Yahoo! учебник о том, как позвонить в службу. Не говоря уже о заголовках или что-то в глубине информации
Есть ли приличная информация о том, как вызывать REST API, или какая-то документация по этому поводу? Потому что даже в W3schools они описывают только метод SOAP. Какие есть варианты для создания API отдыха в PHP?
источник
$data
- это ассоциативный массив (data [fieldname] = value), в котором хранятся данные, отправленные в метод api.curl_close
функция не вызывается, что может вызвать дополнительное потребление памяти, если функция CallAPI вызывается повторно.Если у вас есть URL и ваш php поддерживает его, вы можете просто вызвать file_get_contents:
если $ response - JSON, используйте json_decode, чтобы превратить его в массив php:
если $ response является XML, используйте класс simple_xml:
http://sg2.php.net/manual/en/simplexml.examples-basic.php
источник
file_get_contents
функция завершается с ошибкой и возвращает ноль. Если тело содержит сообщение об ошибке, вы не можете получить его.Используйте Жадность . Это «PHP HTTP-клиент, который облегчает работу с HTTP / 1.1 и избавляет от необходимости использовать веб-сервисы». Работать с Guzzle намного проще, чем с cURL.
Вот пример с веб-сайта:
источник
CURL - это самый простой способ. Вот простой звонок
источник
Используйте HTTPFUL
Httpful - это простая, читабельная, читаемая PHP-библиотека, предназначенная для того, чтобы говорить по HTTP нормально. Он позволяет разработчику сосредоточиться на взаимодействии с API-интерфейсами, а не на просмотре страниц curl set_opt, и является идеальным клиентом PHP REST.
Httpful включает в себя ...
Ex.
Отправьте запрос GET. Получите автоматически проанализированный JSON-ответ.
Библиотека замечает JSON Content-Type в ответе и автоматически анализирует ответ в нативный объект PHP.
источник
$condition = $response->weather[0]->main;
если бы я просто не делал сторону PHP неправильноВы должны знать , если REST API вы вызываете поддерживает
GET
илиPOST
, или оба метода. Приведенный ниже код работает для меня, я называю свой собственный API веб-службы, поэтому я уже знаю, что API берет и что он вернет. Он поддерживает оба методаGET
иPOST
методы, поэтому менее важная информация попадает вURL (GET)
, а информация, такая как имя пользователя и пароль, представляется в видеPOST
переменных. Кроме того, все идет поHTTPS
связи.Внутри кода API я кодирую массив, который хочу вернуть, в формате json, а затем просто использую команду PHP,
echo $my_json_variable
чтобы сделать эту строку json доступной для клиента.Итак, как вы можете видеть, мой API возвращает данные json, но вам нужно знать (или посмотреть на возвращенные данные, чтобы выяснить), в каком формате находится ответ от API.
Вот как я подключаюсь к API со стороны клиента:
Кстати, я также пытался использовать
file_get_contents()
метод, как предлагали некоторые из пользователей, но он мне не помог. Я обнаружил, чтоcurl
метод быстрее и надежнее.источник
На самом деле клиентов много. Одним из них является Пешт - проверьте это. И имейте в виду, что эти вызовы REST являются простым http-запросом с различными методами: GET, POST, PUT и DELETE.
источник
Вы можете использовать
file_get_contents
для выдачи любыеPOST/PUT/DELETE/OPTIONS/HEAD
методы http , в дополнение кGET
методу, как предполагает название функции.Как разместить данные в PHP с помощью file_get_contents?
источник
Если вы используете Symfony, есть отличный клиентский пакет отдыха, который даже включает все ~ 100 исключений и выдает их вместо того, чтобы возвращать какой-то бессмысленный код ошибки + сообщение.
Вы должны действительно проверить это: https://github.com/CircleOfNice/CiRestClientBundle
Я люблю интерфейс:
Работает для всех методов http.
источник
как заметил @Christoph Winkler, это базовый класс для его достижения:
curl_helper.php
Тогда вы всегда можете включить файл и использовать его, например: any.php
источник
Если вы открыты для использования сторонних инструментов, посмотрите на это: https://github.com/CircleOfNice/DoctrineRestDriver
Это совершенно новый способ работы с API.
Прежде всего вы определяете сущность, которая определяет структуру входящих и исходящих данных, и аннотируете ее источниками данных:
Теперь довольно просто общаться с REST API:
источник
Вы можете использовать POSTMAN, приложение, которое упрощает API. Заполните поля запроса, и он сгенерирует для вас код на разных языках. Просто нажмите код справа и выберите нужный язык.
источник