Страница 1 из 3

Как записать ответ API в поле ?

Добавлено: 17 мар 2023, 15:57
SalahievFR
Здравствуйте, как через автоматизацию заполнять поля по API запросу:
// Входные данные
$url = "https://data.av100.ru/fullapi.ashx";
$request_params = array(
"key" => "b0abcafe-dafa-4a4a-8ce0-f327aceab962",
"vin" => "[245]"
);

$get_params = http_build_query($request_params);

// Запрос к серверу
$response = file_get_contents($url."?".$get_params);
// Преобразование ответа
$result = json_decode($response);

// Запись данных в'поля
db_query("update app_entity_26 set field_246='marka' where id={$item_id}");
Отправляем запрос по вин коду, получаем массив:


Например как дописать скрипт php чтобы в поле заполнить возвращаемый "marka":"FORD" ???

Re: Как записать ответ API в поле ?

Добавлено: 17 мар 2023, 20:15
support
выведите значение

Код: Выделить всё

print_rr($result);
и вы узнаете как получить значения marka
предположительно это будет

Код: Выделить всё

$result->vininfo->reghistory->marka

Re: Как записать ответ API в поле ?

Добавлено: 18 мар 2023, 13:46
Fait
Могу помочь, если актуально ещё, опыта с разными API у меня много.
Напишите пожалуйста в ЛС.

Re: Как записать ответ API в поле ?

Добавлено: 20 мар 2023, 10:38
SalahievFR
support писал(а): 17 мар 2023, 20:15 выведите значение

Код: Выделить всё

print_rr($result);
и вы узнаете как получить значения marka
предположительно это будет

Код: Выделить всё

$result->vininfo->reghistory->marka
Образец полного кода можете подсказать? Не могу разобраться(

Re: Как записать ответ API в поле ?

Добавлено: 22 мар 2023, 13:06
SalahievFR
Подскажите пожалуйста. Мне бы хотя бы один пример, чтобы понять в каком направлении двигаться.

Re: Как записать ответ API в поле ?

Добавлено: 22 мар 2023, 21:18
SergeyShepelev
SalahievFR писал(а): 17 мар 2023, 15:57 Здравствуйте, как через автоматизацию заполнять поля по API запросу:
// Входные данные
$url = "https://data.av100.ru/fullapi.ashx";
$request_params = array(
"key" => "b0abcafe-dafa-4a4a-8ce0-f327aceab962",
"vin" => "[245]"
);

$get_params = http_build_query($request_params);

// Запрос к серверу
$response = file_get_contents($url."?".$get_params);
// Преобразование ответа
$result = json_decode($response);

// Запись данных в'поля
db_query("update app_entity_26 set field_246='marka' where id={$item_id}");
Отправляем запрос по вин коду, получаем массив:


Например как дописать скрипт php чтобы в поле заполнить возвращаемый "marka":"FORD" ???
// Преобразование ответа
$result = json_decode($response);
print_r($result);

Re: Как записать ответ API в поле ?

Добавлено: 22 мар 2023, 21:55
SalahievFR
SergeyShepelev писал(а): 22 мар 2023, 21:18
SalahievFR писал(а): 17 мар 2023, 15:57 Здравствуйте, как через автоматизацию заполнять поля по API запросу:
// Входные данные
$url = "https://data.av100.ru/fullapi.ashx";
$request_params = array(
"key" => "b0abcafe-dafa-4a4a-8ce0-f327aceab962",
"vin" => "[245]"
);

$get_params = http_build_query($request_params);

// Запрос к серверу
$response = file_get_contents($url."?".$get_params);
// Преобразование ответа
$result = json_decode($response);

// Запись данных в'поля
db_query("update app_entity_26 set field_246='marka' where id={$item_id}");
Отправляем запрос по вин коду, получаем массив:


Например как дописать скрипт php чтобы в поле заполнить возвращаемый "marka":"FORD" ???
// Преобразование ответа
$result = json_decode($response);
print_r($result);
А как записать отдельные элементы из json в определенные поля?

Re: Как записать ответ API в поле ?

Добавлено: 22 мар 2023, 22:33
SergeyShepelev
https://qna.habr.com/q/703901 - обращение к JSON
Результат обращения можно положить в переменную
и потом обновить таблицу
вместо echo можно использовать

$element = $result['marka'];
db_query("update app_entity_26 set field_246={$element} where id={$item_id}");

Re: Как записать ответ API в поле ?

Добавлено: 26 мар 2023, 12:09
SalahievFR
SergeyShepelev писал(а): 22 мар 2023, 22:33 https://qna.habr.com/q/703901 - обращение к JSON
Результат обращения можно положить в переменную
и потом обновить таблицу
вместо echo можно использовать

$element = $result['marka'];
db_query("update app_entity_26 set field_246={$element} where id={$item_id}");
Спасибо. С переменной работать научился. С запросом api и работой с ответом пока не смог разобраться. )

Re: Как записать ответ API в поле ?

Добавлено: 27 мар 2023, 15:23
SalahievFR
{"start":"27.03.2023 15:22:45","end":"27.03.2023 15:22:45","vin":"XW8ZZZCKZMG010007","error":false,"result":{"vininfo":{"reghistory":{"ownerShipPeriod":[{"from":"04.12.2020","to":"15.12.2020","ownerType":"Физическое лицо","lastOperation":"прекращение регистрации ","region":null},{"from":"13.02.2021","to":"01.01.0001","ownerType":"Физическое лицо","lastOperation":"ранее зарегистрированных в регистрирующих органах","region":null}],"requestDate":"24.03.2023 13:35:20","marka":"VOLKSWAGEN","markaModel":"VOLKSWAGEN POLO ","year":"2020","bodyNumber":"XW8ZZZCKZMG010007","color":"Белый","engineVolume":"1598.0","enginePower":"110.1","engineNumber":"CWV839589","type":"Легковые автомобили комби (хэтчбек)","pts":null},"dtp":{"accident":[],"requestDate":"24.03.2023 13:35:20","inspectDt":1679664920,"hasDtp":false},"restrict":{"records":[],"requestDate":"24.03.2023 13:35:20","hasRestrict":false},"search":{"records":[],"requestDate":"24.03.2023 13:35:19","isSearch":false},"decoding":{"Идентификационный номер":"XW8ZZZCKZMG010007","Контрольный символ":"не используется","Марка":"VOLKSWAGEN","Страна происхождения":"Russia","Производитель":"ООО ФОЛЬКСВАГЕН Груп Рус (Volkswagen Group Rus) ","Адрес производителя":"248956 Калужская область г. Калуга ул. Автомобильная, д.1 (территория технопарка Грабцево)"},"zalogreestrDate":"24.03.2023","zalogreestr":"В реестре залогов по состоянию на 24.03.2023 запись с VIN XW8ZZZCKZMG010007 не найдена.","osago":""},"recalls":[{"VinformerCampaignID":"RC220011","ManufacturerCampaignID":null,"ProhibitionOfexploitation":false,"Manufacturer":"ООО Фольксваген Груп Рус","Models":[{"Brand":"VOLKSWAGEN","Models":["Polo"]}],"VehiclesToRecall":75396,"CampaignDate":"26.04.2022","Reason":"Причина отзыва транспортных средств: на автомобилях Volkswagen, выпущенных в определённый период, функции мобильных онлайн-служб не всегда могут быть доступны в полном объёме.","WhatNeedToDo":"На автомобилях, на которые распространяется действие сервисного мероприятия, будет обновлено программное обеспечение блока управления модуля аварийного вызова и коммуникационного блока.","CarSystem":[[]],"SourceLink":"https://www.rst.gov.ru//newsRST/redirec ... ":"gost.ru"}],"gibdd":[],"elpts":"","autonumber":[],"offer":[],"eaisto":[]},"times":{"full":"0,2 s","mark":"0,0 s","gibdd":"0,0 s","elpts":"0,0 s","an":"0,0 s","offer":"0,0 s","eaisto":"0,0 s","generateResult":"0,1 s","vinGenerator":{"autoins":"0,0 s","autoinsPolice":"0,0 s","full":"0,1 s","gibddSr":"0,1 s","savevin":"0,0 s","decode":"0,0 s","zalog":"0,0 s"}}}
Вот как из такой строки достать "marka":"VOLKSWAGEN","markaModel":"VOLKSWAGEN POLO автомобиля?