Como escrever uma API REST em C# em 30 minutos: guia passo a passo

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: API REST em C# — é simples

\n

API REST (Representational State Transfer) é um estilo arquitetural para criação de serviços web, que hoje é usado em praticamente todos os aplicativos modernos. Se você quer aprender rapidamente a escrever backend em C#, o ASP.NET Core é a melhor escolha para começar. Neste artigo, em 30 minutos criaremos uma API REST completa para gerenciar uma lista de tarefas (Todo List). Você aprenderá como configurar o projeto, escrever controladores, conectar o banco de dados e testar a API através do Swagger.

\n

Pronto? Vamos lá!

\n\n

Passo 1: Criação do projeto e configuração do ambiente

\n

Primeiro, precisamos do .NET SDK instalado (versão 6.0 ou superior). Você pode baixá-lo do site oficial da Microsoft. Após a instalação, abra o terminal ou prompt de comando e crie um novo projeto:

\n
dotnet new webapi -n TodoApi\ncd TodoApi
\n

Este comando criará um template de web API com Swagger pré-instalado. Abra o projeto no Visual Studio Code ou qualquer outra IDE. A estrutura do projeto já inclui as pastas Controllers, Models e o arquivo Program.cs.

\n

Agora, adicionaremos suporte ao Entity Framework Core para trabalhar com banco de dados. Instale os pacotes necessários:

\n
dotnet add package Microsoft.EntityFrameworkCore.InMemory\ndotnet add package Microsoft.EntityFrameworkCore.Design
\n

Usaremos um banco InMemory para simplificar — os dados serão armazenados na memória RAM. Para produção, você pode substituí-lo por SQL Server ou PostgreSQL.

\n\n

Passo 2: Criação do modelo de dados e contexto do BD

\n

Criaremos o modelo TodoItem. Na pasta Models, crie o arquivo TodoItem.cs:

\n
namespace TodoApi.Models;\n\npublic class TodoItem\n{\n    public long Id { get; set; }\n    public string? Title { get; set; }\n    public bool IsComplete { get; set; }\n}
\n

Agora, criaremos o contexto do banco de dados. Na pasta Data (se não existir, crie-a), adicione o arquivo TodoContext.cs:

\n
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Models;\n\nnamespace TodoApi.Data;\n\npublic class TodoContext : DbContext\n{\n    public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }\n    public DbSet<TodoItem> TodoItems { get; set; }\n}
\n

Registraremos o contexto no Program.cs:

\n
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\n\nvar builder = WebApplication.CreateBuilder(args);\n\nbuilder.Services.AddDbContext<TodoContext>(opt =>\n    opt.UseInMemoryDatabase("TodoList"));\n\nbuilder.Services.AddControllers();\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nvar app = builder.Build();\n\nif (app.Environment.IsDevelopment())\n{\n    app.UseSwagger();\n    app.UseSwaggerUI();\n}\n\napp.UseHttpsRedirection();\napp.UseAuthorization();\napp.MapControllers();\napp.Run();
\n\n

Passo 3: Escrita do controlador com operações CRUD

\n

Criaremos o controlador para trabalhar com as tarefas. Na pasta Controllers, adicione o arquivo TodoItemsController.cs:

\n
using Microsoft.AspNetCore.Mvc;\nusing Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\nusing TodoApi.Models;\n\nnamespace TodoApi.Controllers;\n\n[Route("api/[controller]")]\n[ApiController]\npublic class TodoItemsController : ControllerBase\n{\n    private readonly TodoContext _context;\n\n    public TodoItemsController(TodoContext context)\n    {\n        _context = context;\n    }\n\n    // GET: api/TodoItems\n    [HttpGet]\n    public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()\n    {\n        return await _context.TodoItems.ToListAsync();\n    }\n\n    // GET: api/TodoItems/5\n    [HttpGet("{id}")]\n    public async Task<ActionResult<TodoItem>> GetTodoItem(long id)\n    {\n        var todoItem = await                

Blogs

Book Recommendations