Download the PHP package pllano/json-db without Composer
On this page you can find all versions of the php package pllano/json-db. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download pllano/json-db
More information about pllano/json-db
Files in pllano/json-db
Package json-db
Short Description API json DB
License MIT
Homepage https://github.com/pllano/json-db
Informations about the package json-db
«jsonDB» - JSON база данных
JSON база данных с открытым исходным кодом. Написана на PHP. Распространяется по лицензии MIT. Подключается через Composer как обычный пакет PHP, после подключения сама настраивается за несколько секунд. Имеет свой RESTful API интерфейс работающий по стандарту обмена информацией сервер-сервер «APIS-2018», что позволяет использовать ее с любым другим языком программирования. «API json DB» это продвинутый менеджер json файлов с возможностью кеширования популярных запросов, шифрования файлов db, проверкой валидности файлов и очередью на запись при блокировке таблиц (файлов db) на запись другими процессами. Основанием для «API json DB» мы выбрали прекрасную работу Greg0/Lazer-Database. Мы полностью изменили структуру оригинала и добавили: шифрование, API роутинг, кеширование, проверку валидности, очередь на запись и другой удобный функционал.
Старт за несколько минут
Подключить с помощью Composer
Подключить с помощью AutoRequire
Инструменты для тестирования API
- Postman - это мощный набор инструментов тестирования API
- SOAPUI - приложение для тестирования, мониторинга и проверки функциональности REST API.
Инструменты для работы с API
- cURL - Клиентская библиотека PHP работы с URL
- Guzzle - HTTP-клиент PHP
RESTful API роутинг для cURL запросов
«API json DB» имеет свой RESTfull API роутинг для cURL запросов который написан на PHP с использованием Micro Framework Slim, что позволяет использовать «API json DB» с любым другим языком программирования. Для унификации обмена данными и структуры базы данных используется наш собственный стандарт APIS-2018.
RESTfull API состоит всего из двух файлов:
- index.php и .htaccess
Для установки
RESTful API
выполните следующие действия: - В файле index.php укажите директорию где хранится база, например
/www/_db_/
или__DIR__ . '/../../_db_/'
. - Перенесите файлы index.php и .htaccess в директорию доступную через URL. Например:
https://example.com/_12345_/
- Запустите API перейдя по ссылке
https://example.com/_12345_/
- Если база работает Вы увидите следующий результат:
Автоматическое разворачиваение
При запуске база создаст в папке _db_
которую вы указали:
- Таблицу своей конфигурации
db.data.json
иdb.config.json
- Таблицу для кеша
cached.data.json
иcached.config.json
- Таблицу для очереди запросов
queue.data.json
иqueue.config.json
- Директории:
cached
core
log
- В директории
core
сгенерирует файл с ключем для http запросов key_db.txt если его там еще нет. - В директорию
core
скачает этот db.json файл структуры если его там еще нет.Автоматическое создание ресурсов
База автоматически создаст все ресурсы и связи указанные в файле db.json. Для создания индивидуальной конфигурации ресурсов отредактируйте файл db.json и перед запуском скопируйте его в директорию
/_db_/core/
.Поддерживаемые типы данных в db.json
boolean
— Логический типtrue
илиfalse
integer
— Целое числоdouble
— Число с плавающей точкойstring
— СтрокаСтруктура базы данных для интернет-магазина
Структура базы данных db.json выведена в отдельный репозиторий
URL запросов к RESTful API jsonDB
https://example.com/{api_dir}/{table_name}/{id}
{api_dir}
- папка в которой лежит index.php{resource}
- название ресурса к которому обращаемся. Например price или user.{id}
- уникальный индефикатор{param}
- праметры запросаGET запрос к RESTful API jsonDB
?offset={offset}&limit={limit}&order={order}&sort={sort}&public_key={public_key}
{public_key}
- Ключ доступа к RESTful API{limit}
- Записей на страницу. По умолчанию 10{offset}
- Страница. По умолчанию 0{order}
- Тип сортировки. По умолчанию asc{sort}
- Поле сортировки. По умолчанию id{*}
- Любое из полей таблицыRESTful API jsonDB потдерживает
POST
GET
PUT
PATCH
DELETE
запросы:POST /{resource}
Создание записиPOST /{resource}/{id}
ОшибкаGET /{resource}
Список всех записейGET /{resource}?{param}
Список всех записей с фильтром по параметрамGET /{resource}/{id}
Данные конкретной записиPUT /{resource}
Обновить данные записейPUT /{resource}/{id}
Обновить данные конкретной записиPATCH /{resource}
Обновить данные записейPATCH /{resource}/{id}
Обновить данные конкретной записиDELETE /{resource}
Удалить все записиDELETE /{resource}/{id}
Удалить конкретную записьПри желании Вы можете использовать только
GET
запросы:GET /_post/{resource}?{param}
Создание записиGET /_post/{resource}/{id}
ОшибкаGET /_get/{resource}?{param}
Список всех записей с фильтром по параметрамGET /_get/{resource}/{id}
Данные конкретной записиGET /_put/{resource}?{param}
Обновить данные записейGET /_put/{resource}/{id}?{param}
Обновить данные конкретной записиGET /_patch/{resource}?{param}
Обновить данные записейGET /_patch/{resource}/{id}?{param}
Обновить данные конкретной записиGET /_delete/{resource}
Удалить все записиGET /_delete/{resource}/{id}
Удалить конкретную записьПример использования с HTTP клиентом Guzzle
RESTful API jsonDB - Всегда возвращает код 200 даже при логических ошибках !
HTTP/1.1 200 OK
Content-Type: application/json
В теле ответа RESTful API jsonDB вернет код состояния HTTP, статус и описание.
Безопасность
Советы по увеличению безопасности API json DB
Прямое подключение к DB
Если вам не нужен API роутинг Вы можете работать с базой данных напрямую без REST API интерфейса - Документация - работа с DB напрямую или если вам не нужны (кеширование, шифрование) использовать оригинальный пакет Lazer-Database.
Запуск одной строчкой кода
Запуск с параметрами
Примечание: Если вы будете пользоваться RESTful API роутингом для cURL запросов, вам не нужно выполнять запуск базы, роутер index.php сделает все сам. Вам достаточно установить пакет с помощью Composer и выпонить дейсвия с настройкой API роутинга описаны выше.
Создать ресурс в базе данных
Удалить ресурс в базе данных
Очистить ресурс
Проверьте, существует ли ресурс в базе данных
Создать запись
Примечание: Если тип поля integer
а вы передаете число в кавычках, будет ошибка: неверный тип данных
.
Для того чтобы избежать ошибки, добавляйте проверку и передавайте число без кавычек как в примере ниже.
Получить данные
Обновить данные
Удалить запись по id
Поддержка, обратная связь, новости
Общайтесь с нами через почту [email protected]
Если вы нашли баг в API json DB загляните в issues, возможно, про него мы уже знаем и постараемся исправить в ближайшем будущем. Если нет, лучше всего сообщить о нём там. Там же вы можете оставлять свои пожелания и предложения.
За новостями вы можете следить по коммитам в этом репозитории. RSS.
Лицензия
The MIT License (MIT). Please see LICENSE for more information.