Швидкий спосіб створити API для доступу до БД, використовуючи PHP-CRUD-API
Для створення API достатньо завантажити один PHP файл і налаштувати доступ до MySQL таблиці. Можно використовувати для доступу до WordPress таблиць
Знайшов цікавий інструмент для швидкого створення API. Підхід з використанням умовного Laravel виглядає громіздким. Потрібно встановити Laravel, налаштувати доступ до БД, створити міграції, моделі, запити. Загалом це великий обсяг роботи і тільки через якісь пів години або годину вже отримуєш більш меньш працюючий АПІ. Проте і надалі при додаванні змін це потрібно робити через міграції, через додавання великої кількості шаблонного коду. Зрозуміло чому – ларавель це складний інструмент і в той же час надгнучкий. Проте не завжди потрібен такий рівень гнучкості і потрібно почати швидко і вносити зміни мінімальними рухами.
Спитав ChatGPT і він підказав PHP-CRUD-API – це один PHP-скрипт, який додає REST API до бази даних MySQL/MariaDB, PostgreSQL, SQL Server або SQLite.
Вимоги наступні:
PHP 7.2 або вище з увімкненими драйверами PDO для однієї з цих систем баз даних:
- MySQL 5.7 / MariaDB 10.0 або вище — для просторових функцій у MySQL
- PostgreSQL 9.5 або вище з PostGIS 2.2 або вище — для просторових функцій
- SQL Server 2017 або вище (версія 2019 також підтримує Linux)
- SQLite 3.16 або вище (просторові функції НЕ підтримуються)
Інструмент має можливість підключення мідлварів, які надають можливість точнішої конфігурації: авторизація, аутентифікація, CORS та інші. Дивіться повну конфігурацію.
Отриманий АПІ використовує мову запитів TreeQL.
Найшвидший спосіб запустити API – використати Docker-компоуз конфіг. Для цього потрібно склонувати репозиторій PHP-CRUD-API QUICK START, перейменувати .env.sample
на .env
та запустити ./start.sh
. Буде піднято контейнер. Після цього потрібно перейти в файл php/api.php
та у кінці замінити конфігурацію на:
1
2
3
4
5
6
7
8
9
10
$config = new Config([
'driver' => 'mysql',
'address' => 'mysql',
'port' => '3306',
'username' => 'sampleuser',
'password' => 'samplepassword',
'database' => 'sampledb',
'middlewares' => 'cors,json',
// 'debug' => false
]);
Тепер API і сервісні інструменти доступно за наступними URL: