Introdução: REST API em C# — é rápido e simples
O desenvolvimento de aplicações web modernas e serviços móveis é impossível sem uma REST API. Se você deseja criar rapidamente um backend para seu projeto, C# com o framework ASP.NET Core é a escolha ideal. Graças às ferramentas integradas, configuração mínima e excelente desempenho, você pode escrever uma REST API completa em apenas 30 minutos.
Neste artigo, vamos analisar o processo de criação de uma API simples para gerenciar uma lista de tarefas (Todo List). Você aprenderá como configurar o projeto, criar modelos de dados, implementar controladores com operações CRUD e testar a API usando Swagger. Todos os exemplos de código são escritos em C# (.NET 8).
Mesmo que você seja iniciante em C#, seguindo as instruções, você terá uma API funcional ao final do artigo.
1. Criando o projeto e configurando o ambiente
Primeiramente, certifique-se de ter o .NET SDK instalado (versão 8 ou superior). Você pode baixá-lo no site oficial. Após a instalação, abra o terminal ou prompt de comando.
Crie um novo projeto ASP.NET Core Web API com o comando:
dotnet new webapi -n TodoApicd TodoApiEste comando criará uma pasta TodoApi com a estrutura básica do projeto. Ela já contém o arquivo Program.cs — ponto de entrada, e a pasta Controllers para futuros controladores.
Abra o projeto no Visual Studio, Visual Studio Code ou Rider. Para simplificar, você pode usar qualquer editor de texto.
Certifique-se de que no arquivo Program.cs existam as chamadas AddSwaggerGen() e UseSwagger(). O Swagger já está incluído automaticamente no template — isso facilitará os testes. Se não estiver, adicione:
builder.Services.AddEndpointsApiExplorer();builder.Services.AddSwaggerGen();// ...app.UseSwagger();app.UseSwaggerUI();2. Criando o modelo de dados e o armazenamento temporário
Para nossa API, armazenaremos as tarefas na memória RAM (in-memory). Em um projeto real, você conectaria um banco de dados, mas para demonstração de uma solução de 30 minutos, isso é suficiente.
Crie uma pasta Models e dentro dela o arquivo TodoItem.cs:
public class TodoItem{ public int Id { get; set; } public string Title { get; set; } = string.Empty; public bool IsCompleted { get; set; }}Agora vamos criar um serviço-repositório simples. Na pasta Services, crie a interface ITodoService.cs e sua implementação TodoService.cs. Isso permitirá mudar facilmente para um banco de dados real no futuro.
ITodoService.cs:
public interface ITodoService{ List<TodoItem> GetAll(); TodoItem? GetById(int id); TodoItem Create(TodoItem item); TodoItem? Update(int id, TodoItem item); bool Delete(int id);}TodoService.cs:
public class TodoService : ITodoService{ private readonly List<TodoItem> _items = new(); private int _nextId = 1;
public List<TodoItem> GetAll() => _items;
public TodoItem? GetById(int id) => _items.FirstOrDefault(i => i.Id == id);
public TodoItem Create(TodoItem item) { item.Id = _nextId++; _items.Add(item); return item; }
public TodoItem? Update(int id, TodoItem item) { var existing = GetById(id); if (existing == null) return null; existing.Title = item.Title; existing.IsCompleted = item.IsCompleted; return existing; }
public bool Delete(int id) { var item = GetById(id); if (item == null) return false; return _items.Remove(item); }}Registre o serviço no contêiner DI no Program.cs:
<