DEV Community

loading...
Cover image for [Pt-BR] LiteDB – Banco de dados NoSQL Brasileiro

[Pt-BR] LiteDB – Banco de dados NoSQL Brasileiro

João Paulo de C. Lima
I love to learn new things, especially about software development and how to solve problems using IT.
・4 min read

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
Enter fullscreen mode Exit fullscreen mode

Após a criação do projeto, iremos adicionar o seguinte pacote:

dotnet add package LiteDB --version 5.0.10
Enter fullscreen mode Exit fullscreen mode

Agora, vamos adicionar as seguintes classes para que o nosso CRUD funcione:
Estrutura do Projeto

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.
Classe LiteDBExtensions

Esses dois métodos de extensão criados, são utilizandos dentro da classe “Startup.cs”.
Método ConfigureServices da classe Startup

Testando nossos endpoints

Primeiro, vamos iniciar a nossa API através do comando:

dotnet run
Enter fullscreen mode Exit fullscreen mode

Agora, vamos fazer um requisição POST para inserir uma informação em nosso banco de dados:
Método POST
Postman POST
Postman retorno

Após a requisição POST, vamos verificar, através da requisição GET se a informação foi, realmente, inserida
Método GET
Postman GET
Postman retorno

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”
Método GET/ID
Postman GET/ID
Postman retorno

Pronto! Temos nosso primeiro cadastro realizado. Se quisermos alterá-lo ou excluí-lo, temos um endpoint para cada função.
Método PUT
Postman PUT
Postman Retorno

Método DELETE
Postman DELETE
Postman retorno

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

arquivos “nameofDb.db”

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:
caminho para o arquivos

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!

Discussion (0)