Как сделать запрос через REST API и получить ответ?
Как сделать запрос через REST API и получить ответ?
Необходимо сделать запрос к стороннему серверу используя REST API. Нашел только информацию как самим сделать REST API сервер и отвечать на запросы.
запрос должен выглядеть вот так
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Token " \
-H "X-Secret: " \
-d '[ "тут та инфа, которую отправляем" ]' \
https://ru.ru
запрос должен выглядеть вот так
curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Token " \
-H "X-Secret: " \
-d '[ "тут та инфа, которую отправляем" ]' \
https://ru.ru
Re: Как сделать запрос через REST API и получить ответ?
Вот 300 раз слышал про этот REST API. Можно в двух словах, когда это необходимо?
Осторожно! Вы общаетесь с новичком
Re: Как сделать запрос через REST API и получить ответ?
Именно REST API?girmate писал(а):Вот 300 раз слышал про этот REST API. Можно в двух словах, когда это необходимо?
Когда есть желание стандартизировать общение клиентов с сервером и вместо GET-запросов в формате ...&method=delete&id=7 слать нормальные DELETE-запросы в формате ...&id=7 без указания всяких методов.
То есть вы уже на уровне заголовка решаете, какую операцию будет делать запрос: GET (чтение), POST (создание), PUT (обновление) или DELETE (удаление).
Таким образом, REST - это дополнительный уровень стандартизации, который избавляет вас от головной боли на уровне проектирования запросов к API.
Ну и всяческие коды ответов, соответственно, тоже стандартизированы (ОК, не ОК, таймаут, Not Found, конфликт, кривые параметры и т.п.)
Re: Как сделать запрос через REST API и получить ответ?
Вот именно в таком формате я и хотел получить ответ: кратко и по сути. В интернете смотрел, но не особо просветлился. Спасибо!
Осторожно! Вы общаетесь с новичком
Re: Как сделать запрос через REST API и получить ответ?
Спасибо. Запрос отправляет, только вот ошибку никак не могу поправить:Sam Dark писал(а):https://github.com/yiisoft/yii2-httpcli ... /README.md
Код: Выделить всё
$data = ['замятина 42-3'];
$client = new Client();
$response = $client->createRequest()
->setFormat(Client::FORMAT_JSON)
->setMethod('post')
->setUrl('https://dadata.ru/api/v2/clean/address')
->setHeaders(['Content-Type' => 'application/json'])
->addHeaders(['Authorization' => ''])
->addHeaders(['X-Secret' => ''])
->setData(['data' =>$data])
->send();
Код: Выделить всё
"data":["Expected a list of items but got type \"dict\"."
Код: Выделить всё
$data = ['замятина 38-3'];
Код: Выделить всё
"data":["Expected a list of items but got type \"unicode\"."]
Re: Как сделать запрос через REST API и получить ответ?
Код: Выделить всё
$data = ['поле' => 'замятина 38-3'];
Re: Как сделать запрос через REST API и получить ответ?
Тогда пишет
data":["Expected a list of items but got type \"dict\"."]}
data":["Expected a list of items but got type \"dict\"."]}
Re: Как сделать запрос через REST API и получить ответ?
Как оказалось у них не точно представлена информация по пользованию их же API.
Вот конечный вариант, после него возвращается корректный ответ.
Может быть кому то будет полезно. Это для сервиса от http://dadata.ru
Вот конечный вариант, после него возвращается корректный ответ.
Может быть кому то будет полезно. Это для сервиса от http://dadata.ru
Код: Выделить всё
$data = array(array("екатеринбург малышева 31а"));
$client = new Client();
$response = $client->createRequest()
->setFormat(Client::FORMAT_JSON)
->setMethod('post')
->setUrl('https://dadata.ru/api/v2/clean/address')
->setHeaders(['Content-Type' => 'application/json'])
->addHeaders(['Authorization' => ''])
->addHeaders(['X-Secret' => ''])
->setData(['data' => $data, "structure" => array("ADDRESS")])
->send();