Публікація

Швидкий спосіб створити 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:

Публікація захищена ліцензією CC BY 4.0 .