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.