Criando APIs RESTful com ASP.NET Core
7/3/2024, às 8:33:59

O que é uma API RESTful?

Uma API RESTful é uma interface que permite a comunicação entre diferentes sistemas usando o protocolo HTTP. REST (Representational State Transfer) é um estilo arquitetural que usa operações HTTP padrão (GET, POST, PUT, DELETE) para manipular recursos.


Por que Usar ASP.NET Core para Criar APIs RESTful?

ASP.NET Core é uma plataforma leve, de alto desempenho e modular, ideal para criar APIs RESTful. Ela oferece suporte nativo a muitas funcionalidades, incluindo roteamento, validação de modelos, autenticação e autorização, e muito mais.


Passo 1: Configurar o Projeto

1.1 Criar um Novo Projeto de API

Crie um novo projeto de API usando o template webapi.

dotnet new webapi -o MyApi
cd MyApi


Passo 2: Definir Modelos e Contexto de Dados

2.1 Criar o Modelo de Dados

Crie uma classe de modelo que represente a entidade do banco de dados. Vamos criar um modelo simples chamado Product.

public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}


2.2 Configurar o DbContext

Configure o DbContext para interagir com o banco de dados.

using Microsoft.EntityFrameworkCore;

public class MyApiContext : DbContext
{
public MyApiContext(DbContextOptions<MyApiContext> options)
: base(options)
{
}

public DbSet<Product> Products { get; set; }
}


Passo 3: Configurar a Conexão com o Banco de Dados

No arquivo appsettings.json, configure a string de conexão com o banco de dados.

"ConnectionStrings": {
"DefaultConnection": "Server=(localdb)\\\\\\\\mssqllocaldb;Database=MyApiDb;Trusted_Connection=True;"
}


No arquivo Startup.cs, registre o DbContext no método ConfigureServices.

public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<MyApiContext>(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

services.AddControllers();
}


Passo 4: Criar o Controlador da API

Crie um controlador para expor os endpoints da API. Vamos criar um controlador ProductsController para gerenciar produtos.

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private readonly MyApiContext _context;

public ProductsController(MyApiContext context)
{
_context = context;
}

// GET: api/Products
[HttpGet]
public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
{
return await _context.Products.ToListAsync();
}

// GET: api/Products/5
[HttpGet("{id}")]
public async Task<ActionResult<Product>> GetProduct(int id)
{
var product = await _context.Products.FindAsync(id);

if (product == null)
{
return NotFound();
}

return product;
}

// POST: api/Products
[HttpPost]
public async Task<ActionResult<Product>> PostProduct(Product product)
{
_context.Products.Add(product);
await _context.SaveChangesAsync();

return CreatedAtAction("GetProduct", new { id = product.Id }, product);
}

// PUT: api/Products/5
[HttpPut("{id}")]
public async Task<IActionResult> PutProduct(int id, Product product)
{
if (id != product.Id)
{
return BadRequest();
}

_context.Entry(product).State = EntityState.Modified;

try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ProductExists(id))
{
return NotFound();
}
else
{
throw;
}
}

return NoContent();
}

// DELETE: api/Products/5
[HttpDelete("{id}")]
public async Task<IActionResult> DeleteProduct(int id)
{
var product = await _context.Products.FindAsync(id);
if (product == null)
{
return NotFound();
}

_context.Products.Remove(product);
await _context.SaveChangesAsync();

return NoContent();
}

private bool ProductExists(int id)
{
return _context.Products.Any(e => e.Id == id);
}
}


Passo 5: Testar a API

Utilize ferramentas como Postman ou Swagger para testar os endpoints da API.


Conclusão

Criar APIs RESTful com ASP.NET Core é simples e eficiente. Este guia mostrou como configurar um projeto, definir modelos de dados, configurar o contexto de dados, criar controladores de API e testar os endpoints. Com essas informações, você está pronto para construir APIs robustas e escaláveis.


VOCÊ PODE GOSTAR

^

voltar para o top