DevNerd

Tag: C#

Tutorial: Criando uma API REST com .NET Core 8

Bem-vindo ao Dev Nerd! Neste tutorial, você vai aprender como criar uma API REST usando .NET Core 8. Vamos cobrir a configuração do ambiente de desenvolvimento, criação de endpoints e consumo da API.

Passo 1: Configurando o Ambiente

  1. Instalando o .NET Core SDK:
  2. Instalando o Visual Studio:
    • Baixe e instale o Visual Studio 2022 (ou a versão mais recente) com a carga de trabalho “ASP.NET e desenvolvimento web”.

Passo 2: Criando um Novo Projeto ASP.NET Core

  1. Criando o Projeto:
    • Abra o Visual Studio e selecione “Criar um novo projeto”.
    • Escolha “ASP.NET Core Web API” e clique em “Avançar”.
    • Nomeie o projeto como DevNerdApi, escolha um local de armazenamento e clique em “Criar”.
  2. Selecionando a Versão do .NET Core:
    • Na próxima tela, selecione .NET Core 8 como a versão da estrutura de destino e clique em “Criar”.

Passo 3: Estrutura do Projeto

  1. Explorando a Estrutura:
    • O projeto criado terá a seguinte estrutura básica:
DevNerdApi/
├── Controllers/
│ └── WeatherForecastController.cs
├── Program.cs
├── Startup.cs
├── DevNerdApi.csproj

Passo 4: Criando um Modelo e um Controlador

  1. Criando o Modelo:Crie uma nova pasta chamada Models e adicione um arquivo Product.cs com o seguinte conteúdo:
    namespace DevNerdApi.Models
    {
    public class Product
    {
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    }
    }
  2. Criando o Controlador:
    • Crie uma nova pasta chamada Controllers e adicione um arquivo ProductsController.cs com o seguinte conteúdo:
using Microsoft.AspNetCore.Mvc;
using DevNerdApi.Models;
using System.Collections.Generic;
using System.Linq;
[Route(“api/[controller]”)]
[ApiController]
public class ProductsController : ControllerBase
{
private static List<Product> Products = new List<Product>
{
new Product { Id = 1, Name = “Laptop”, Price = 1500.00M },
new Product { Id = 2, Name = “Mouse”, Price = 25.00M },
};
[HttpGet]
public ActionResult<IEnumerable<Product>> Get()
{
return Products;
}
[HttpGet(“{id}”)]
public ActionResult<Product> Get(int id)
{
var product = Products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound();
}
return product;
}
[HttpPost]
public ActionResult<Product> Post(Product product)
{
product.Id = Products.Count + 1;
Products.Add(product);
return CreatedAtAction(nameof(Get), new { id = product.Id }, product);
}
[HttpPut(“{id}”)]
public ActionResult Put(int id, Product product)
{
var existingProduct = Products.FirstOrDefault(p => p.Id == id);
if (existingProduct == null)
{
return NotFound();
}
existingProduct.Name = product.Name;
existingProduct.Price = product.Price;
return NoContent();
}
[HttpDelete(“{id}”)]
public ActionResult Delete(int id)
{
var product = Products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound();
}
Products.Remove(product);
return NoContent();
}
}

Passo 5: Testando a API

  1. Executando o Projeto:
      • Pressione F5 ou clique em “Iniciar” no Visual Studio para executar o projeto.
      • A API estará disponível em https://localhost:5001/api/products.
      • Teste a Api no Swagger:

    Api Rest .net core 8

    Api Rest rodando localhost

  2. Testando com o Postman:
    • Use o Postman para testar os endpoints:
      • GET https://localhost:5001/api/products – Obtém todos os produtos.
      • GET https://localhost:5001/api/products/{id} – Obtém um produto pelo ID.
      • POST https://localhost:5001/api/products – Adiciona um novo produto.
      • PUT https://localhost:5001/api/products/{id} – Atualiza um produto existente.
      • DELETE https://localhost:5001/api/products/{id} – Deleta um produto.

API .NET Core e MongoDB

API .NET Core e MongoDB

Como criar uma API RESTful com .NET Core e MongoDB ?

Neste tutorial, você aprende como:

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

Pré-requisitos

Leia o nosso post sobre MongoDB: Banco de Dados NoSQL

Faça a instalação e a configuração do MongoBD como explicado.

Vamos criar nossa base de dados

Abra o prompt de comando (CMD) e insira os comandos a seguir:

Conecte-se ao banco de dados de teste padrão executando o seguinte comando:

mongosh

Execute o seguinte comando no shell de comando:

use BookStore

Um banco de dados chamado BookStore é criado se ainda não existir. Se o banco de dados existe, sua conexão é aberta para transações.

Crie uma coleção Books usando o seguinte comando:

db.createCollection(‘Books’)

O seguinte resultado é exibido:

{ “ok” : 1 }

Defina um esquema para a Bookscoleção e insira dois documentos usando o seguinte comando:

db.Books.insertMany([{ “Name”: “Design Patterns”, “Price”: 54.93, “Category”: “Computers”, “Author”: “Ralph Johnson” }, { “Name”: “Clean Code”, “Price”: 43.15, “Category”: “Computers”,”Author”: “Robert C. Martin” }])

Um resultado semelhante ao seguinte é exibido:

{
“acknowledged” : true,
“insertedIds” : [
ObjectId(“61a6058e6c43f32854e51f51”),
ObjectId(“61a6058e6c43f32854e51f52”)
]
}

Visualize os documentos no banco de dados usando o seguinte comando:

db.Books.find().pretty()

{
“_id” : ObjectId(“61a6058e6c43f32854e51f51”),
“Name” : “Design Patterns”,
“Price” : 54.93,
“Category” : “Computers”,
“Author” : “Ralph Johnson”
}
{
“_id” : ObjectId(“61a6058e6c43f32854e51f52”),
“Name” : “Clean Code”,
“Price” : 43.15,
“Category” : “Computers”,
“Author” : “Robert C. Martin”
}

Base de dados MongoDB

Comandos executados e base de dados BookStore no MongoDB criada juntamente com sua coleção de Books.

 

BookStore MongoDB Compass

Todos os comandos podem ser executados diretamente no MongoDB Compass.

 

Crie o projeto de API Web ASP.NET Core

Criando um novo projeto

Criando um novo projeto

 

projeto ASP.NET Core Web API

Projeto ASP.NET Core Web API

 

Nome e local do projeto

Nome e local do projeto

 

Framework e Docker

Framework .NET 6.0 sem autenticação e com Docker ativo para se utilizar em futuros outros posts como exemplo.

 

Vamos adicionar um modelo de entidade

  1. Vamos adicionar a pasta Models no diretório raiz.
  2. Crie uma classe chamada Book dentro da pasta Models como abaixo:

using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;

namespace BookStoreApi.Models;

public class Book
{
[BsonId]
[BsonRepresentation(BsonType.ObjectId)]
public string? Id { get; set; }

[BsonElement("Name")]
public string BookName { get; set; } = null!;

public decimal Price { get; set; }

public string Category { get; set; } = null!;

public string Author { get; set; } = null!;
}

Na classe anterior, a propriedade Id é:

  • Necessário para mapear o objeto Common Language Runtime (CLR) para a coleção MongoDB.
  • Anotado com [BsonId]para tornar esta propriedade a chave primária do documento.
  • Anotado com [BsonRepresentation(BsonType.ObjectId)]para permitir a passagem do parâmetro como tipo stringem vez de uma estrutura ObjectId . O Mongo lida com a conversão de stringpara ObjectId.

BookNamepropriedade é anotada com o [BsonElement]atributo. O valor do atributo Name representa o nome da propriedade na coleção do MongoDB.

Algumas configurações

Localize e abra o arquivo appsettings.json e adicione o código a seguir para configurar os parâmetros da base de dados:

{
"BookStoreDatabase": {
"ConnectionString": "mongodb://localhost:27017",
"DatabaseName": "BookStore",
"BooksCollectionName": "Books"
},
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

Adicione uma classe BookStoreDatabaseSettings ao diretório Models com o seguinte código: 

namespace BookStoreApi.Models;

public class BookStoreDatabaseSettings
{
public string ConnectionString { get; set; } = null!;

public string DatabaseName { get; set; } = null!;

public string BooksCollectionName { get; set; } = null!;
}

 

Introdução ao C#

C# (pronuncia-se “C sharp”) é uma linguagem de programação moderna, orientada a objetos e fortemente tipada desenvolvida pela Microsoft. Ela foi projetada para ser eficiente, segura, fácil de aprender e adequada para o desenvolvimento de uma ampla variedade de aplicativos na plataforma .NET.

Aqui estão alguns aspectos importantes do C#:

  1. Sintaxe elegante: O C# possui uma sintaxe limpa e expressiva que torna o código fácil de ler e entender. Ela se assemelha a outras linguagens populares, como C++ e Java, o que facilita a transição para o C# se você já estiver familiarizado com essas linguagens.
  2. Orientação a objetos: O C# é uma linguagem orientada a objetos, o que significa que você pode criar classes, objetos e utilizar conceitos como herança, polimorfismo e encapsulamento para estruturar e organizar seu código.
  3. Gerenciamento automático de memória: O C# utiliza o coletor de lixo (garbage collector) para gerenciar automaticamente a memória do programa, liberando a memória alocada para objetos que não estão mais em uso. Isso ajuda a evitar vazamentos de memória e torna o desenvolvimento mais eficiente.
  4. Biblioteca de classes do .NET: O C# é executado na plataforma .NET e tem acesso a uma ampla biblioteca de classes e funcionalidades prontas para uso. A biblioteca de classes do .NET abrange uma variedade de áreas, incluindo manipulação de arquivos, acesso a bancos de dados, redes, criptografia e muito mais.
  5. Tipagem forte: O C# é uma linguagem fortemente tipada, o que significa que você precisa declarar explicitamente os tipos das variáveis ​​e parâmetros. Isso contribui para um código mais robusto, evitando erros de tipo em tempo de compilação.
  6. Tratamento de exceções: O C# possui um sistema de tratamento de exceções que permite capturar e tratar erros e exceções durante a execução do programa. Isso ajuda a lidar com situações inesperadas e a manter a estabilidade do aplicativo.
  7. Suporte a programação assíncrona: O C# oferece suporte a programação assíncrona por meio de palavras-chave como async e await. Isso permite escrever código assíncrono de forma mais concisa e eficiente, melhorando a responsividade e o desempenho de aplicativos que realizam operações demoradas, como acesso a bancos de dados ou chamadas de rede.

O C# é amplamente utilizado para o desenvolvimento de aplicativos de desktop, aplicativos web, serviços web, jogos e muito mais. É uma linguagem poderosa e versátil, que continua evoluindo com o tempo para se adaptar às necessidades dos desenvolvedores e às tendências da indústria.

Desenvolvido em WordPress & Tema por Anders Norén