Подключение API от rapidapi.com
Спешу поделиться небольшим рассказом о том, как я успешно реализовал следующий проект: «Подключение API от rapidapi.com». Возможно кому-то из вас он будет интересен, а кто-то пожелает заказать аналогичную работу. Ко мне обратился клиент — владелец бизнеса по продаже почтовых «лейблов» на рынке США и ЕС, нашедший меня на фриланс-бирже Kwork , и предложивший мне сотрудничество. Работа с клиентом велась с использованием фриланс-биржи Kwork, и все взаиморасчеты производились с использованием системы «безопасной сделки», также при необходимости мы всегда могли подключить Арбитра, но это не потребовалось, сделка прошла как всегда гладко.
Поставленные задачи
В рамках данного проекта, были поставлены и реализованы следующие задачи:
- Подключить API от https://rapidapi.com/ и переписать метод(php код) работы с ним, по аналогии функционала с прежним методом API;
- Разобрать получаемый JSON код;
- Настроить работы CRON по расписанию;
- Учесть суточные лимиты отправляемых запросов к API.
Сфера проведения работ
- Бэкенд (работа со скриптами PHP обеспечивающих работу бэкенда, админпанели, базы данных MySQL);
Стек технологий
Языки программирования и фреймворки:
- PHP 7;
Базы данных и системы кеширования:
- База данных MySQL (MariaDB);
Внешние сервисы
- Изучение документации, подключение и настройка внешнего сервиса по API (Application Programming Interface);
Дополнительно в рамках работы требовалось
- Провести исследование, изучить техническую часть проекта, ознакомиться с документацией, дать оценку сложности, стоимости и сроков, а также вероятность проведения дополнительных работ выходящих за рамки основного списка поставленных задач;
- В рамках проекта были зафиксированы и оговорены точные сроки сдачи работы, без возможности их переноса, т.е. был установлен дедлайн, это накладывало на меня дополнительную ответственность, с чем разумеется я справился;
Реализация проекта
Работа была завершена, и по итогу было реализовано следующее:
Все задачи были реализованы в короткий срок, произведена проверка и тестирование на корректность работы нового метода для работы с API.
Функционал — Каждую минуту по CRON, происходит запуск PHP скрипт, который отправляем запрос по API на удаленный сервер и по трек-номеру посылки, получает данные о её движении, затем эти данные вносятся в систему и отображаются пользователю. Плюс, в случае если посылка не была отправлена, то пользователю осуществляется возврат ранее оплаченных за отправку средств.
<?php $apiAuth = 'СЕКРЕТНЫЙ_КОД_API'; $apiKey = 'КЛЮЧ_API'; $track = 'ТРЕК НОМЕР ОТПРАВЛЯЕНИЯ ДЛЯ США ИЛИ ЕС'; $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://trackingpackage.p.rapidapi.com/TrackingPackage?trackingNumber=" . $track, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", CURLOPT_HTTPHEADER => [ "Authorization: Basic " . $apiAuth, "x-rapidapi-host: trackingpackage.p.rapidapi.com", "x-rapidapi-key: " . $apiKey ], ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { $response = json_decode($response); print_R(date_parse($response->TrackingDetails[0]->EventDateTime)); print_R($response); } |
Пример ответа API в формате JSON:
{
"TrackingNumber": "ТРЕК НОМЕР ОТПРАВЛЯЕНИЯ ДЛЯ США ИЛИ ЕС",
"Delivered": false,
"Carrier": "FedEx",
"ServiceType": "STANDARD_OVERNIGHT",
"PickupDate": "",
"ScheduledDeliveryDate": "",
"ScheduledDeliveryDateInDateTimeFromat": null,
"StatusCode": "OC",
"Status": "Shipment information sent to FedEx",
"StatusSummary": "Shipment information sent to FedEx",
"Message": "",
"DeliveredDateTime": "",
"DeliveredDateTimeInDateTimeFormat": null,
"SignatureName": "",
"DestinationCity": "Central Falls",
"DestinationState": "RI",
"DestinationZip": "",
"DestinationCountry": null,
"TrackingDetails": [
{
"EventDateTime": "2024-10-21T03:52:38-05:00",
"Event": "OC Shipment information sent to FedEx",
"EventAddress": " ",
"State": "",
"City": "",
"Zip": "",
"EventDateTimeInDateTimeFormat": "2024-10-21T03:52:38"
}
]
} |
Также было сделано
- Клиент пожелал обеспечить проект «безопасной сделкой», что я также всегда приветствую. Спокойствие обеих сторон, всегда продуктивно сказывается на рабочем процессе;

Автор:






