PocketBase es un backend de código abierto que consta de una base de datos SQLite integrada con validación de datos, suscripciones en tiempo real y una API REST fácil de usar. También ofrece autenticación y almacenamiento de archivos para archivos multimedia.
PocketBase es perfecto para proyectos para los que preferiría no crear un backend, ya sea por limitaciones de tiempo o por conveniencia, ya que es completamente portátil y requiere una configuración mínima. También se integra con tecnologías populares como Vue, Svelte, React, Angular y Flutter.
Servicios proporcionados por PocketBase
PocketBase proporciona la mayoría de los servicios ofrecidos por otros proveedores de backend como SupaBase.
- Base de datos SQLite: PocketBase incluye una base de datos SQLite integrada. Esto difiere de otros proveedores de back-end que usan bases de datos más grandes como PostgreSQL o MySQL. El uso de SQLite hace que PocketBase sea más ligero. También puede suscribirse a eventos de bases de datos en tiempo real a través de una API.
- Autenticación: PocketBase admite autenticación de correo electrónico/contraseña y autenticación OAuth2 a través de Facebook, Google, GitLab y GitHub.
- Almacenamiento de archivos: puede cargar archivos de fotos, audio y video en el almacenamiento local o en un cubo S3 usando PocketBase.
- Panel de administración: El panel de administración le permite crear y administrar colecciones en la base de datos. También puede cargar archivos, ver archivos de registro y configurar la configuración para enviar correos electrónicos,
Según los documentos, PocketBase puede servir fácilmente a más de 10 000 usuarios en tiempo real simultáneos y persistentes. conexiones en 6 servidores privados virtuales, lo que lo convierte en una opción de back-end asequible para pequeñas y medianas aplicaciones
Tenga en cuenta que PocketBase solo escala verticalmente. Esto significa que necesita agregar más CPU y RAM para aumentar la potencia de procesamiento. Si tiene una aplicación grande, considere una proveedor de backend como Firebase que permite el escalado horizontal.
Primeros pasos con PocketBase
Actualmente, PocketBase ofrece dos SDK:
- Un SDK de JavaScript que puede usar con marcos de JavaScript como Svelte, React, Vue y Angular.
- Un SDK de Dart para Aplicaciones de aleteo.
La forma más fácil de empezar es descargar Pocket Base. Hay varios enlaces, así que asegúrese de descargar el que sea compatible con su entorno.
Una vez que lo haya descargado, extráigalo y navegue a la carpeta de Pocketbase. Luego ejecuta este comando en una terminal:
./servicio de base de bolsillo
Este comando debería iniciar un servidor web en estas rutas.
- Servidor: http://127.0.0.1:8090/
- API REST: http://127.0.0.1:8090/api/
- IU de administrador: http://127.0.0.1:8090/_/
Navegar a la http://127.0.0.1:8090/_/ URL para crear su primera colección usando el panel de administración.
Creación de una colección en PocketBase
La primera vez que abra la interfaz de usuario de administrador, le pedirá una dirección de correo electrónico y una contraseña para crear una cuenta de administrador.
Así es como se ve la interfaz de usuario de administración:
Al hacer clic en el Nueva colección El botón en la interfaz de usuario de administración abrirá un panel de colección que puede completar con detalles para crear una nueva colección.
Así es como crearía una colección llamada todos que consta de un título y campos completos:
Una colección puede ser una colección base o de autenticación. Una colección base es el tipo de colección predeterminado y puede usarla para cualquier tipo de datos. Una colección de autenticación contiene campos adicionales para administrar usuarios, como nombre de usuario, correo electrónico y verificado.
No necesita usar la interfaz de usuario de administrador para crear una colección; puede crear uno utilizando la API web. Documentos de PocketBase proporcione ejemplos específicos de SDK sobre cómo crear y administrar colecciones a través de la API. Puede crear, ver, actualizar, eliminar o importar colecciones.
Uso de PocketBase en una aplicación React
El SDK de JavaScript le permite interactuar con PocketBase desde un proyecto de React.
Para seguir, comience por creando un proyecto React.
Luego, instale PocketBase JavaScript SDK en su proyecto React a través de npm:
npm instalar base de bolsillo --guardar
A continuación, en app.js, importe PocketBase e inicialícelo.
importar base de bolsillo de'base de bolsillo';
constante pb = nuevo PocketBase(' http://127.0.0.1:8090');
Para ilustrar cómo PocketBase integra React, creará las funciones auxiliares para una aplicación de tareas pendientes. Estas funciones crearán, actualizarán, recuperarán y eliminarán elementos.
Crear un elemento de Todo
En app.js, cree una función llamada addTodo.
constante agregarTodo = asíncrono (hacer) => {
intentar {
constante registro = esperaresperar pb.colección("todas").crear (hacer);
devolver registro;
} atrapar (error) {
devolver { error: mensaje de error };
}
};
Esta función agrega un nuevo registro en la colección de todos.
Actualizar un elemento de Todo
Para actualizar un registro en la colección de tareas pendientes, cree una función llamada updateTodo y use el método de actualización.
constante actualizarTodo = asíncrono (id_registro, todo) => {
intentar {
constante registro = esperar pb.colección("todas").update (id_registro, todo);
devolver registro;
} atrapar (error) {
devolver { error: mensaje de error };
}
};
La función updateTodo encuentra el elemento pendiente en función del Id. de registro y lo actualiza con los nuevos datos.
Eliminar un elemento de Todo
En app.js, cree una función llamada deleteTodo que elimine un registro en la colección de tareas pendientes.
constante eliminarTodo = asíncrono (id_registro) => {
intentar {
esperar pb.colección("todas").eliminar (id_registro);
} atrapar (error) {
devolver { error: mensaje de error };
}
};
Recuperar un elemento de Todo
Puede recuperar un solo elemento de tarea pendiente o todos los elementos de la colección.
Esta función recupera un solo elemento de tarea pendiente por id:
constante obtenerTodo = asíncrono (id_registro) => {
intentar {
constante registro = esperar pb.colección("todas").getOne (id_registro, {
expandir: "relField1,relField2.subRelField",
});
devolver registro
} atrapar (error) {
devolver { error: mensaje de error };
}
};
Mientras que la siguiente función recuperará todos los registros en la colección de tareas pendientes:
constante obtenerTodos = asíncrono (id_registro) => {
intentar {
constante registros = esperar pb
.recopilación("todas")
.getFullList(200 /* tamaño del lote */, {
clasificar: "-creado",
});
devolver registros;
} atrapar (error) {
devolver { error: mensaje de error };
}
}
Puede utilizar estas funciones para crear y actualizar la interfaz de usuario de la aplicación.
Para obtener ejemplos más detallados, consulte el API de registros de PocketBase documentación o la documentación API generada en "Admin UI > Collections > API Preview". Debería poder acceder a la lista, ver, crear, actualizar, eliminar y la documentación en tiempo real para su colección.
Por qué debería usar PocketBase
PocketBase es el mejor backend para proyectos pequeños y medianos. Requiere una configuración mínima y es fácil de usar. Ofrece dos SDK de cliente, un SDK de JavaScript y un SDK de Dart, y puede usarlo en aplicaciones web y móviles.
PocketBase también es autohospedable y puede alojarlo en un servidor local o en un VPS. Si bien no admite funciones en la nube, puede usarlo como un marco Go y crear su propia aplicación con lógica comercial personalizada.