joao2391 / LiteDB_API_Example

This is a API that uses LiteDB as database. All CRUD operations are included.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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:

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

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 nas Issues.

Um grande abraço!

About

This is a API that uses LiteDB as database. All CRUD operations are included.


Languages

Language:C# 100.0%