Este es un tutorial sencillo de Pocketbase.io, un programa que nos permite tener un backend creado en minutos. Es basicamente un headless CMS como Strapi o Sanity, asu vez que tambien una alternativa Open Source a Firebas, como si fuera Supabase. Solo que PocketBase es un mucho más simple, y pequeño, ideal para proyectos simples donde queramos alojar nuestra propia solucion Backend as a Service sin tanto problema.
¿Que es PocketBase?
- PocketBase es un software as a service similar a Firbease pero completamente Open Source desarrollado en Go, pero con el proposito de usarlo con bibliotecas de Javascript. es un open soruce backend as a service usa SQlite como base de datos
subscripciones en tiempo real (similar a Fifebase) administracion de ususarios con un panel de control
REST API
Sitio Oficial de PocketBase
Github de Pocketbae: https://github.com/pocketbase/pocketbase
Instalación de PocketBase
Descarga el ejectuble de Pocketbase, y ejecuta:
./pocketbase serve
Puedes ver otros comandos con:
pocketbase
o usando el comando:
pocketbase --help
Collections
Las colecciones son donde se guardan los datos. En realidad este es un nombre que el desarrollador le ha dado a las tablas de Sqlite, porque al final esta es la base de datos que usa internamente.
- Collection es una tabla sql
- Fields, son las columnas de las tablas
- Record, es una fila de la tabla
Fields
los fields pueden ser de estos tipos de datos:
text, number, bool, email, url, single or multiple select, files upload, relations,
API Rules
estan son los accesos que pueden tener nuestros endpoints de la API:
Each collection has 5 rules, corresponding to the specific API action:
listRule viewRule createRule updateRule deleteRule
Each rule could be set to:
"locked" - aka. null, which means that the action could be performed only by an authorized admin (this is the default) Empty string - anyone will be able to perform the action (admins, authorized users and guests) Non-empty string - only those Record(s) and users (authorized or not) that satisfies the rule filter expression will be able to perform this action
Unlike Firebase, Pocketbase API Rules acts also as Records filter! Or in other words, you could for example allow listing only the "active" Records of your collection, by using a simple filter expression such as: status = "active" (where "status" is a field defined in your Collection).
The API Rules are ignored when the action is performed by an authorized admin (admins can always access everything)!
RUles filter sintax
Usuarios
Documetancion
API Preview puedes ver una breve descripcion del endpoint
REST API
Client SDK
de momento tan solo hemos utilizado su interfaz de administrador, pero el asunto de todo este backend es usando con aplicaciones cliente, asi que de momento tenemos la opcion de usarlo con aplicaciones de Javascript.
Aunque tambien al parecer daran soporte a aplicaciones de Dart: https://pocketbase.io/docs/client-side-integration
Para Desarrolladores de Go
Como pocketbase esta desarrollado en GO, podemos usarlo como un ejecutable final, que es lo que hemos visto, o tambien podemos extender su API, para adaptarlo a nuestros proyectos, ya que su api es completamente abierta podemos extenderala con código de Go:
https://github.com/pocketbase/pocketbase