PocketBase — это серверная часть с открытым исходным кодом, состоящая из встроенной базы данных SQLite с проверкой данных, подписками в реальном времени и простым в использовании REST API. Он также предлагает аутентификацию и файловое хранилище для медиафайлов.
PocketBase идеально подходит для проектов, для которых вы не хотите создавать серверную часть либо из-за нехватки времени, либо из-за удобства, поскольку он полностью переносим и требует минимальной настройки. Он также интегрируется с популярными технологиями, такими как Vue, Svelte, React, Angular и Flutter.
Услуги, предоставляемые PocketBase
PocketBase предоставляет большинство услуг, предлагаемых другими бэкэнд-провайдерами, такими как SupaBase.
- База данных SQLite: PocketBase включает встроенную базу данных SQLite. Это отличается от других бэкэнд-провайдеров, которые используют более крупные базы данных, такие как PostgreSQL или MySQL. Использование SQLite делает PocketBase более легким. Вы также можете подписаться на события базы данных в реальном времени через API.
- Аутентификация: PocketBase поддерживает аутентификацию по электронной почте/паролю и аутентификация OAuth2 через Facebook, Google, GitLab и GitHub.
- Файловое хранилище: вы можете загружать фотографии, аудио- и видеофайлы в локальное хранилище или в корзину S3 с помощью PocketBase.
- Панель администратора: панель администратора позволяет создавать коллекции в базе данных и управлять ими. Вы также можете загружать файлы, просматривать файлы журналов и настраивать параметры отправки электронных писем,
Согласно документам, PocketBase может легко обслуживать более 10 000 одновременных и постоянных данных в режиме реального времени. соединения на 6 виртуальных частных серверах, что делает его доступным выбором для малого и среднего бизнеса. Приложения.
Обратите внимание, что PocketBase масштабируется только по вертикали. Это означает, что вам нужно добавить больше ЦП и ОЗУ, чтобы увеличить вычислительную мощность. Если у вас большое приложение, рассмотрите серверный провайдер, такой как Firebase что позволяет горизонтальное масштабирование.
Начало работы с PocketBase
В настоящее время PocketBase предоставляет два SDK:
- Пакет SDK для JavaScript, который можно использовать с платформами JavaScript, такими как Svelte, React, Vue и Angular.
- Dart SDK для Флаттер-приложения.
Самый простой способ начать — это скачать PocketBase. Существует несколько ссылок, поэтому обязательно загрузите ту, которая совместима с вашей средой.
После того, как вы загрузили его, распакуйте и перейдите в папку pocketbase. Затем запустите эту команду в терминале:
./карманная подача
Эта команда должна запустить веб-сервер на этих маршрутах.
- Сервер: http://127.0.0.1:8090/
- ОТДЫХА API: http://127.0.0.1:8090/api/
- Пользовательский интерфейс администратора: http://127.0.0.1:8090/_/
Перейдите к http://127.0.0.1:8090/_/ URL-адрес для создания вашей первой коллекции с помощью панели администратора.
Создание коллекции в PocketBase
При первом открытии пользовательского интерфейса администратора он запросит адрес электронной почты и пароль для создания учетной записи администратора.
Вот как выглядит интерфейс администратора:
Нажав на Новая коллекция Кнопка в пользовательском интерфейсе администратора откроет панель коллекции, которую вы можете заполнить деталями для создания новой коллекции.
Вот как можно создать коллекцию под названием todos, состоящую из заголовка и заполненных полей:
Коллекция может быть либо базовой, либо коллекцией авторизации. Базовая коллекция — это тип коллекции по умолчанию, и вы можете использовать ее для любого типа данных. Коллекция авторизации содержит дополнительные поля для управления пользователями, такие как имя пользователя, адрес электронной почты и проверено.
Вам не нужно использовать пользовательский интерфейс администратора для создания коллекции; вы можете создать его с помощью веб-API. Документы PocketBase предоставить специфичные для SDK примеры того, как создавать коллекции и управлять ими через API. Вы можете создавать, просматривать, обновлять, удалять или импортировать коллекции.
Использование PocketBase в приложении React
JavaScript SDK позволяет вам взаимодействовать с PocketBase из проекта React.
Чтобы продолжить, начните с создание проекта React.
Затем установите PocketBase JavaScript SDK в свой проект React через npm:
npm установить pocketbase --save
Затем в app.js импортируйте PocketBase и инициализируйте его.
Импортировать Карманная база от'карманная база';
константа пб = новый Карманная база(' http://127.0.0.1:8090');
Чтобы проиллюстрировать, как PocketBase интегрирует React, вы создадите вспомогательные функции для приложения списка дел. Эти функции будут создавать, обновлять, извлекать и удалять элементы.
Создать элемент списка дел
В app.js создайте функцию addTodo.
константа добавитьTodo = асинхронный (дело) => {
пытаться {
константа запись = ЖдитеЖдите пб.коллекция("дело").создать (сделать);
возвращаться записывать;
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
};
Эта функция добавляет новую запись в коллекцию todos.
Обновить элемент Todo
Чтобы обновить запись в коллекции задач, создайте функцию с именем updateTodo и используйте метод обновления.
константа обновитьTodo = асинхронный (record_id, задача) => {
пытаться {
константа запись = Ждите пб.коллекция("дело").update (record_id, todo);
возвращаться записывать;
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
};
Функция updateTodo находит элемент списка дел на основе идентификатора записи и обновляет его новыми данными.
Удалить элемент списка дел
В app.js создайте функцию с именем deleteTodo, которая удаляет запись в коллекции задач.
константа удалитьTodo = асинхронный (record_id) => {
пытаться {
Ждите пб.коллекция("дело").удалить (record_id);
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
};
Получить элемент Todo
Вы можете получить один элемент списка дел или все элементы из коллекции.
Эта функция извлекает один элемент списка дел по идентификатору:
константа получитьTodo = асинхронный (record_id) => {
пытаться {
константа запись = Ждите пб.коллекция("дело").getOne (record_id, {
расширять: «relField1, relField2.subRelField»,
});
возвращаться записывать
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
};
В то время как функция ниже извлечет все записи в коллекции задач:
константа получитьTodos = асинхронный (record_id) => {
пытаться {
константа записи = Ждите пб
.коллекция("дело")
.getFullList(200 /* размер партии */, {
Сортировать: "-созданный",
});
возвращаться записи;
} ловить (ошибка) {
возвращаться { ошибка: сообщение об ошибке };
}
}
Вы можете использовать эти функции для создания и обновления пользовательского интерфейса приложения.
Более подробные примеры см. API записей PocketBase документацию или сгенерированную документацию по API в «Пользовательском интерфейсе администратора > Коллекции > Предварительный просмотр API». Вы должны иметь доступ к списку, просмотру, созданию, обновлению, удалению и документации в режиме реального времени для вашей коллекции.
Почему вы должны использовать PocketBase
PocketBase — лучший бэкенд для малых и средних проектов. Он требует минимальной настройки и прост в использовании. Он предлагает два клиентских SDK — JavaScript SDK и Dart SDK — и вы можете использовать его в веб-приложениях и мобильных приложениях.
PocketBase также можно размещать самостоятельно, и вы можете разместить его на локальном сервере или VPS. Хотя он не поддерживает облачные функции, вы можете использовать его в качестве платформы Go и создать собственное приложение с пользовательской бизнес-логикой.