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
- Instalando o .NET Core SDK:
- Baixe e instale o .NET Core SDK 8 a partir do site oficial: Download .NET Core 8
- 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
- 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”.
- 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
- Explorando a Estrutura:
- O projeto criado terá a seguinte estrutura básica:
DevNerdApi/
├── Controllers/
│ └── WeatherForecastController.cs
├── Program.cs
├── Startup.cs
├── DevNerdApi.csproj
├── Controllers/
│ └── WeatherForecastController.cs
├── Program.cs
├── Startup.cs
├── DevNerdApi.csproj
Passo 4: Criando um Modelo e um Controlador
- Criando o Modelo:Crie uma nova pasta chamada
Models
e adicione um arquivoProduct.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; }
}
} - Criando o Controlador:
- Crie uma nova pasta chamada
Controllers
e adicione um arquivoProductsController.cs
com o seguinte conteúdo:
- Crie uma nova pasta chamada
using Microsoft.AspNetCore.Mvc;
using DevNerdApi.Models;
using System.Collections.Generic;
using System.Linq;
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 },
};
[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;
}
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;
}
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);
}
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();
}
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();
}
}
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
- 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 rodando localhost
- 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.
- GET
- Use o Postman para testar os endpoints:
Deixe um comentário
Você precisa fazer o login para publicar um comentário.