Alex #fullstack » Блог » Как сделать API на личном опыте (JSON)

Как сделать API на личном опыте (JSON)

Постер к публикации Как сделать API на личном опыте (JSON)

Ранее я не знал как работать с API, а также не имел опыта организации собственного. Работая с личным проектом Applook у меня стояла задача организовать обработку входящих для мониторинга данных, ведь от каждого магазина API хоть и в JSON формате, но при этом все они имели абсолютно различную структуру.

Мне пришлось не только написать систему, которая собирает данные из разных источников в разной структуре, но и переформирует это в единую структуру для дальнейшей работы. Таким образом получилось привести в порядок работу самого мониторинга, хоть это и не исключает возможное наличие ошибок от источников данных.

Вторым этапом необходимо было подготовить интерфейс с ответом в формате JSON, который позволил бы подключить нативное приложение на iOS. Для него я организовал единый API по схеме: Общий файл + подключаемые файлы отвечающие за определённые методы API.

При реализации я использовал стандартную схему работы и сложные типы обработки массивов, после чего данные формируются с помощью php.

Пример вывода API в формате JSON


// Получаем данные из MYSQL или других источников в виде массива или объединяем их в массив
$sql = $db->query("SELECT * FROM table WHERE param='paramvalue'");
$array = $db->get_row($sql);
// Преобразуем массив данных для приложения
$content = json_encode($array);
if ($content and empty($error)) {
// В случае успешного запроса и наличия информации
print_r($content);
} else {
// В случае неуспешного запроса и/или отсутствия информации
print_r($error);
}

То есть предварительно стоит задача организовать методы (берём за основу GET или POST) и на основе метода формируем тот или иной контент для вывода. Я понимаю, что очень поверхностное, но очень простое объяснение реализации своего API. 

Далее есть ряд различных нюансов, например может потребоваться доп. изменение кодировки для кириллических символов и т.д., это уже зависит от типа данных и идеи скрипта. Сложного ничего нет, просто знание php, понимание логики и не забывать про оптимизацию!