João Paulo de C. Lima
Posted on May 5, 2021
Overview
O LiteDb é um banco de dados NoSql desenvolvido e mantido pelos brasileiros Mauricio David,Cassiano Sombrio e Leonardo Nascimento.
Features
- Não necessita de um servidor de documentos NoSql
- Possui uma API simples muito semelhante ao do MongoDb
- Suporte para Portable UWP/PCL
- Recuperação de dados após falha de gravação
- Criptografia de arquivo de dados usando criptografia DES (AES)
- Transações ACID (atomicidade, consistência, isolamento e durabilidade)
- Recuperação de dados após falha de gravação (journal mode)
- Mapeie suas classes POCO para o BsonDocument usando atributos ou usando Fluent Mapper API
- Armazenar arquivos e dados de fluxo (como GridFS no MongoDB)
- Armazenamento de arquivos de dados simples (como SQLite)
- Indexação de campos dos documentos para pesquisa rápida (até 16 índices por coleção)
- Suporte a consultas LINQ
- Shell de comando
Fonte: Blog Raphael Cardoso e LiteDB
Setup
Baixe e instale o .NET 5
Criando uma API integrada com o LiteDB
Para criar um projeto Web API, basta digitar o seguinte comando:
dotnet new webapi
Após a criação do projeto, iremos adicionar o seguinte pacote:
dotnet add package LiteDB --version 5.0.10
Agora, vamos adicionar as seguintes classes para que o nosso CRUD funcione:
Para não deixar o artigo muito longo, aqui está os links das classes criadas:
Pasta “Common”:
Config.cs
Constants.cs
ILiteDBContext.cs
LiteDBContext.cs
LiteDBExtensions.cs
Pasta “Controller”:
CustomerController.cs
Pasta “Models”:
Customer.cs
Pasta “Services”:
ILiteDBServices.cs
LiteDBService.cs
Repare que a classe “LiteDBExtensions.cs”, está sendo usada para facilitar a manutenção e legibilidade do código.
Esses dois métodos de extensão criados, são utilizandos dentro da classe “Startup.cs”.
Testando nossos endpoints
Primeiro, vamos iniciar a nossa API através do comando:
dotnet run
Agora, vamos fazer um requisição POST para inserir uma informação em nosso banco de dados:
Após a requisição POST, vamos verificar, através da requisição GET se a informação foi, realmente, inserida
Repare que este método retorna todas as informações, pois não foi especificado um “Id” na hora da requisição.
Para retornar um cadastro específico, bastamos informar o “Id”
Pronto! Temos nosso primeiro cadastro realizado. Se quisermos alterá-lo ou excluí-lo, temos um endpoint para cada função.
Mas então, onde as informações estão sendo salvas?
As informações são salvas em um arquivo “.db”, localizado dentro do seu projeto
As classes de "services" e "context", fazem o trabalho de buscar e inserir as informações dentro do arquivo.
O nome do arquivo é definido da seguinte maneira:
Conclusão
Como podemos perceber, o LiteDB pode ser usado em diversas situações e projetos. Cabe a você decidir onde e quando usá-lo.
Espero que vocês tenham gostado. Dúvidas, sugestões ou críticas deixem nos comentários.
Um grande abraço!
Posted on May 5, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.