Skip to content

Repositorio com uma Web API utilizando MongoDb produzida com base no tutorial da Microsoft.

Notifications You must be signed in to change notification settings

fabianysousa/tutorial-web-api-aspnet-core-mongodb

Repository files navigation

Tutorial Web Api ASP.NET Core e o MongoDB


📑 Sobre

Nesse repositório é colocado em prática e documentando os conceitos básicos da criação de uma API Web do Tutorial: criar uma API Web com ASP.NET Core e o MongoDB da Microsoft.

Deverá ser aprendido:

  • Configurar o MongoDB.
  • Criar um banco de dados do MongoDB.
  • Definir uma coleção e um esquema do MongoDB.
  • Executar operações CRUD do MongoDB a partir de uma API Web.
  • Personalizar a serialização JSON.

🧠 Conceitos aprendidos

Foi criado um banco de dados do MongoDB utilizando comandos shell, criei uma coleção e inseri dados no banco, além de exibir esses dados no cmd do Mongo.

Comandos shell Mongo DB Descrição
mongo Conecte-se ao banco de dados de testes padrão
use BookstoreDb Criando banco de dados ou abrindo conexão do banco p/ transações
db.createCollection('Books') Criando coleção no banco de dados
db.Books.insertMany([{objeto}]) Inserindo dados no banco de dados
db.Books.find({}).pretty() Exibindo todos os dados no banco de dados

Documentação dos Database Commands do MongoDB .

Após criar o banco de dados do Mongo foi criando o projeto do tipo aplicativo Web ASP.NET Core no modelo API e logo em seguida adicionado o NuGet MongoDB. Driver. O NuGet pode ser instalado tanto pela plataforma Visual Studio como pelo cmd. Comando shell:

Install-Package MongoDB.Driver -Version {VERSION}.

Em seguida foi criando um diretório Models na raiz do projeto e adicionado uma classe Book ao diretório. Nessa classe é modelado os dados e o comportamento por trás do processo de negócios. No Id é usado para mapear o objeto Common Language Runtime(CLR) para a coleção do MongoDB.

É necessário configurar o banco de dados e isso é feito no appsettings.json da aplicação. Nesse arquivo é acrescentado informações como o nome da coleção do banco de dados, a conexão e o nome do banco de dados criado. Configuração utlizada na aplicação:

"BookstoreDatabaseSettings": {
    "BooksCollectionName": "Books",
    "ConnectionString": "mongodb://localhost:27017",
    "DatabaseName": "BookstoreDb"
 },

Não podemos esquecer de adicionar a classe BookstoreDatabaseSettings.cs que será utilizada para armazenar o appsettings.json e registrar no contêiner de injeção de dependência Startup.cs a seção do arquivo BookstoreDatabaseSettings do appsettings.json.

Posterior a isso é criado um diretório Services na raiz do projeto onde é adicionado a classe BookServiceno diretório. Nessa classe é adicionado um serviço de operações CRUD. Essa classe deve ser adicionada no contêiner de inejão de dependência services.AddSingleton<BookService>(). O Singleton é um padrão de projeto que serve para ara instacionar uma classe para toda uma aplicação.

Logo, é importânte que seja criando um diretório Controller onde deve ser inserido uma classe, no caso da aplicação, BooksController em que deve ser usada para executar operações CRUD utilizando os métodos de ação HTTP GET, POST, PUT e DELETE.

Como proposto, devemos personalizar a serialização JSON. Na aplicação o uso de maiúsculas e minúsculas padrão dos nomes da propriedade deve ser alterado para corresponder ao uso de maiúsculas e minúsculas Pascal dos nomes de propriedade do objeto CLR e a propriedade bookName deve ser retornada como Name. Para que essa personalização possa acontecer é necessário adicionar o NuGet NewtonsoftJson e em Startup deve ser encadeado no método AddControllers o código .AddNewtonsoftJson(options => options.UseMemberCasing());. Já no Book.cs é necessário adicionar a propriedade [JsonProperty("Name")] que irá reprensar o nome da propriedade de resposta JSON serializada da API Web.


⚙️ Tecnologias utilizadas

O projeto foi desenvolvido utilizando as seguintes tecnologias:


☄️ Como baixar o projeto

Pré-requisitos:

Visual Studio 2019 16.4 ou posterior

.NET Core 3.1 SDK ou ou posterior

MongoDB

No promit command:

    # Clonar o repositório
    $ git clone https://github.com/fabianysousa/tutorial-web-api-aspnet-core-mongodb


    # Entrar no diretório
    $ cd tutorial-web-api-aspnet-core-mongodb
    
    # Rode o projeto
    $ dotnet run

💡 Insight

Fazer esse tutorial me forneceu o entendimento do funcionamento da aplicação e além de me promover a experiência de utilizar o o MongoDB como Banco de Dados a minha API. Aprender conceitos como CLR, serialização do JSON, Singleton foram novidades para mim. Sinto que estou crescendo cada vez mais no mundo do .NET.


Desenvolvido ❤️ por Fabiany de Sousa Costa

About

Repositorio com uma Web API utilizando MongoDb produzida com base no tutorial da Microsoft.

Topics

Resources

Stars

Watchers

Forks

Languages