- Programação

Criando APIs RESTful em .NET Core com Entity Framework

Criar uma API RESTful em .NET Core utilizando Entity Framework (EF) pode ser uma excelente maneira de construir aplicações escaláveis e eficientes. Este guia vai abordar o processo passo a passo para criar uma API robusta e conectá-la a um banco de dados utilizando o EF para gerenciar os dados de forma simples e eficaz.

Passo 1: Criando o Projeto

Primeiramente, é necessário criar um novo projeto .NET Core. Abra o terminal ou Prompt de Comando e execute o seguinte comando para criar um novo Web API:

dotnet new webapi -n MeuProjetoAPI

Esse comando irá gerar um template básico de API com as configurações essenciais.

Passo 2: Instalando o Entity Framework Core

Para utilizar o Entity Framework Core, você precisa instalar os pacotes necessários. Execute os seguintes comandos para instalar o EF Core com suporte ao SQL Server:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

Esses pacotes permitirão que o EF Core se conecte ao banco de dados SQL Server e forneça ferramentas para migrações.

Passo 3: Configurando o Contexto do Banco de Dados

O próximo passo é criar um contexto de banco de dados que o Entity Framework usará para interagir com o banco. Crie uma nova classe AppDbContext dentro da pasta Models:

using Microsoft.EntityFrameworkCore;

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

    public DbSet<Produto> Produtos { get; set; }
}

Passo 4: Definindo o Modelo de Dados

Agora, defina um modelo simples de dados para ser usado pela API. Crie a classe Produto em Models:

public class Produto
{
    public int Id { get; set; }
    public string Nome { get; set; }
    public decimal Preco { get; set; }
}

Passo 5: Configurando a String de Conexão

Adicione a string de conexão no arquivo appsettings.json, indicando o banco de dados SQL Server que você está utilizando:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost;Database=MeuBanco;Trusted_Connection=True;"
  }
}

Passo 6: Iniciando o Contexto no Startup.cs

No arquivo Startup.cs, configure os serviços para usar o AppDbContext com a string de conexão:

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

Passo 7: Criando os Controllers

Agora, crie um controller para gerenciar os produtos. Crie a classe ProdutosController em Controllers:

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

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

    public ProdutosController(AppDbContext context)
    {
        _context = context;
    }

    [HttpGet]
    public async Task<ActionResult<IEnumerable<Produto>>> GetProdutos()
    {
        return await _context.Produtos.ToListAsync();
    }

    [HttpGet("{id}")]
    public async Task<ActionResult<Produto>> GetProduto(int id)
    {
        var produto = await _context.Produtos.FindAsync(id);
        if (produto == null)
        {
            return NotFound();
        }
        return produto;
    }

    [HttpPost]
    public async Task<ActionResult<Produto>> PostProduto(Produto produto)
    {
        _context.Produtos.Add(produto);
        await _context.SaveChangesAsync();
        return CreatedAtAction(nameof(GetProduto), new { id = produto.Id }, produto);
    }

    [HttpPut("{id}")]
    public async Task<IActionResult> PutProduto(int id, Produto produto)
    {
        if (id != produto.Id)
        {
            return BadRequest();
        }

        _context.Entry(produto).State = EntityState.Modified;
        await _context.SaveChangesAsync();
        return NoContent();
    }

    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteProduto(int id)
    {
        var produto = await _context.Produtos.FindAsync(id);
        if (produto == null)
        {
            return NotFound();
        }

        _context.Produtos.Remove(produto);
        await _context.SaveChangesAsync();
        return NoContent();
    }
}

Passo 8: Realizando Migrações

Para gerar as tabelas do banco de dados com base no seu modelo de dados, use as migrações do EF Core. Execute os seguintes comandos:

dotnet ef migrations add InitialCreate
dotnet ef database update

Passo 9: Testando a API

Agora que a API está configurada, inicie o servidor com:

dotnet run

Acesse http://localhost:5000/api/produtos para testar os endpoints da API.


Esse é o básico de como criar uma API RESTful em .NET Core com Entity Framework. Com essa estrutura, você pode começar a desenvolver uma API robusta que interage com um banco de dados SQL Server de forma eficiente.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *