O PocketBase é um back-end de código aberto que consiste em um banco de dados SQLite incorporado com validação de dados, assinaturas em tempo real e uma API REST fácil de usar. Ele também oferece autenticação e armazenamento de arquivos para arquivos de mídia.
O PocketBase é perfeito para projetos para os quais você prefere não criar um back-end devido a restrições de tempo ou conveniência, pois é totalmente portátil e requer configuração mínima. Ele também se integra a tecnologias populares como Vue, Svelte, React, Angular e Flutter.
Serviços prestados pela PocketBase
O PocketBase fornece a maioria dos serviços oferecidos por outros provedores de back-end, como o SupaBase.
- banco de dados SQLite: PocketBase inclui um banco de dados SQLite incorporado. Isso difere de outros provedores de back-end que usam bancos de dados maiores, como PostgreSQL ou MySQL. O uso do SQLite torna o PocketBase mais leve. Você também pode se inscrever em eventos de banco de dados em tempo real por meio de uma API.
- Autenticação: PocketBase suporta autenticação de e-mail/senha e Autenticação OAuth2 via Facebook, Google, GitLab e GitHub.
- Armazenamento de arquivo: você pode fazer upload de arquivos de fotos, áudio e vídeo para armazenamento local ou um depósito S3 usando o PocketBase.
- Painel do administrador: o painel Admin permite criar e gerenciar coleções no banco de dados. Você também pode fazer upload de arquivos, visualizar arquivos de log e definir a configuração para enviar e-mails,
De acordo com os documentos, o PocketBase pode atender facilmente a mais de 10.000 usuários simultâneos e persistentes em tempo real conexões em 6 servidores privados virtuais, tornando-o uma opção de back-end acessível para pequenos e médios formulários.
Observe que o PocketBase escala apenas verticalmente. Isso significa que você precisa adicionar mais CPU e RAM para aumentar o poder de processamento. Se você tiver uma aplicação grande, considere um provedor de back-end como Firebase que permite escala horizontal.
Introdução ao PocketBase
Atualmente, o PocketBase oferece dois SDKs:
- Um SDK JavaScript que você pode usar com estruturas JavaScript como Svelte, React, Vue e Angular.
- Um Dart SDK para aplicativos flutuantes.
A maneira mais fácil de começar é baixar PocketBase. Existem vários links, portanto, certifique-se de baixar aquele compatível com seu ambiente.
Depois de baixá-lo, extraia e navegue até a pasta pocketbase. Em seguida, execute este comando em um terminal:
./pocketbase serve
Este comando deve iniciar um servidor web nessas rotas.
- Servidor: http://127.0.0.1:8090/
- API REST: http://127.0.0.1:8090/api/
- IU do administrador: http://127.0.0.1:8090/_/
Navegue até o http://127.0.0.1:8090/_/ URL para criar sua primeira coleção usando o painel de administração.
Criando uma coleção no PocketBase
Na primeira vez que você abrir a interface do usuário do administrador, ela solicitará um endereço de e-mail e uma senha para criar uma conta de administrador.
Aqui está a aparência da interface do usuário do administrador:
Clicando no Nova coleção botão na interface do usuário do administrador abrirá um painel de coleção que você pode preencher com detalhes para criar uma nova coleção.
Veja como você criaria uma coleção chamada todos consistindo em um título e campos preenchidos:
Uma coleção pode ser uma coleção base ou de autenticação. Uma coleção base é o tipo de coleção padrão e você pode usá-la para qualquer tipo de dados. Uma coleção de autenticação contém campos extras para gerenciar usuários, como nome de usuário, e-mail e verificado.
Você não precisa usar a interface do usuário do administrador para criar uma coleção; você pode criar um usando a API da Web. Documentos do PocketBase fornecem exemplos específicos do SDK de como criar e gerenciar coleções por meio da API. Você pode criar, visualizar, atualizar, excluir ou importar coleções.
Usando o PocketBase em um aplicativo React
O JavaScript SDK permite que você interaja com o PocketBase a partir de um projeto React.
Para acompanhar, comece por criando um projeto React.
Em seguida, instale o PocketBase JavaScript SDK em seu projeto React via npm:
npm install pocketbase --save
Em seguida, em app.js, importe PocketBase e inicialize-o.
importar PocketBase de'pocketbase';
const pb = novo PocketBase(' http://127.0.0.1:8090');
Para ilustrar como o PocketBase integra o React, você criará as funções auxiliares para um aplicativo de tarefas pendentes. Essas funções criarão, atualizarão, recuperarão e excluirão itens.
Criar um item de tarefa
Em app.js, crie uma função chamada addTodo.
const addTodo = assíncrono (todo) => {
tentar {
const registro = aguardamaguardam pb.coleção("todos").criar (fazer);
retornar registro;
} pegar (erro) {
retornar { erro: mensagem de erro };
}
};
Esta função adiciona um novo registro na coleção todos.
Atualizar um item de tarefa
Para atualizar um registro na coleção de tarefas, crie uma função chamada updateTodo e use o método update.
const atualizarTodo = assíncrono (record_id, todo) => {
tentar {
const registro = aguardam pb.coleção("todos").update (record_id, todo);
retornar registro;
} pegar (erro) {
retornar { erro: mensagem de erro };
}
};
A função updateTodo localiza o item pendente com base no ID do registro e o atualiza com os novos dados.
Excluir um item de tarefa
Em app.js, crie uma função chamada deleteTodo que exclui um registro na coleção de tarefas.
const deleteTodo = assíncrono (record_id) => {
tentar {
aguardam pb.coleção("todos").delete (record_id);
} pegar (erro) {
retornar { erro: mensagem de erro };
}
};
Recuperar um item de tarefa
Você pode recuperar um único item de tarefa ou todos os itens da coleção.
Esta função recupera um único item de tarefa por id:
const getTodo = assíncrono (record_id) => {
tentar {
const registro = aguardam pb.coleção("todos").getOne (record_id, {
expandir: "relField1,relField2.subRelField",
});
retornar registro
} pegar (erro) {
retornar { erro: mensagem de erro };
}
};
Enquanto a função abaixo irá recuperar todos os registros da coleção de tarefas:
const getTodos = assíncrono (record_id) => {
tentar {
const registros = aguardam pb
.coleção("todos")
.getFullList(200 /* tamanho do batch */, {
organizar: "-criada",
});
retornar registros;
} pegar (erro) {
retornar { erro: mensagem de erro };
}
}
Você pode usar essas funções para criar e atualizar a interface do usuário do aplicativo.
Para exemplos mais detalhados, consulte o API de registros do PocketBase documentação ou a documentação da API gerada em "Admin UI > Collections > API Preview". Você deve ser capaz de acessar a lista, visualizar, criar, atualizar, excluir e a documentação em tempo real de sua coleção.
Por que você deve usar o PocketBase
PocketBase é o melhor back-end para projetos de pequeno a médio porte. Requer configuração mínima e é fácil de usar. Ele oferece dois SDKs de cliente — um SDK para JavaScript e um SDK para Dart — e você pode usá-lo em aplicativos da Web e móveis.
O PocketBase também é auto-hospedável e você pode hospedá-lo em um servidor local ou em um VPS. Embora não ofereça suporte a funções de nuvem, você pode usá-lo como uma estrutura Go e criar seu próprio aplicativo com lógica de negócios personalizada.