Introdução: API REST em C# — é mais fácil do que parece
O desenvolvimento de aplicações web e microsserviços é impensável sem uma API REST. Se você está apenas começando sua jornada na programação, criar sua própria API pode parecer uma tarefa difícil. No entanto, com o framework ASP.NET Core em C#, você pode escrever um serviço RESTful funcional em apenas 30 minutos.
Neste guia, criaremos passo a passo uma API simples para gerenciar uma lista de tarefas (Todo List). Você aprenderá como configurar o projeto, criar um modelo de dados, um controlador e testar os endpoints. Sem mágica — apenas código limpo e explicações claras.
Ao final do artigo, você terá uma API totalmente funcional, suportando todas as principais operações CRUD (Create, Read, Update, Delete).
Passo 1: Preparação do ambiente e criação do projeto
Antes de escrever código, certifique-se de ter as ferramentas necessárias instaladas:
- .NET SDK (versão 8.0 ou superior) — baixe do site oficial da Microsoft
- Visual Studio (2022 Community Edition) ou Visual Studio Code com a extensão C#
- Postman ou qualquer outro cliente REST para testes
Abra o terminal (ou prompt de comando) e execute o seguinte comando para criar um novo projeto Web API:
dotnet new webapi -n TodoApicd TodoApiApós criar o projeto, abra a pasta TodoApi na sua IDE. A estrutura do projeto conterá várias pastas e arquivos, mas por enquanto estamos interessados em três principais: Program.cs, Controllers e Models.
Passo 2: Criação do modelo de dados
O modelo é uma classe que descreve a estrutura de dados da nossa API. Para a lista de tarefas, precisaremos de três campos: um identificador único, um nome e o status de conclusão.
Crie uma nova pasta Models na raiz do projeto e, dentro dela, o arquivo TodoItem.cs:
namespace TodoApi.Models;
public class TodoItem{ public int Id { get; set; } public string? Name { get; set; } public bool IsComplete { get; set; }}Observe o ponto de interrogação após string. Ele indica que a propriedade Name pode ser null. Esta é uma boa prática para evitar avisos do compilador.
Passo 3: Criação do controlador e implementação do CRUD
O controlador é uma classe que processa requisições HTTP. No ASP.NET Core, os controladores herdam de ControllerBase e usam atributos para roteamento.
Crie o arquivo TodoItemsController.cs na pasta Controllers:
using Microsoft.AspNetCore.Mvc;using TodoApi.Models;
namespace TodoApi.Controllers;
[ApiController][Route("api/[controller]")]public class TodoItemsController : ControllerBase{ private static List<TodoItem> _todoItems = new();
// GET: api/TodoItems [HttpGet] public ActionResult<IEnumerable<TodoItem>> GetTodoItems() { return _todoItems; }
// GET: api/TodoItems/1 [HttpGet("{id}")] public ActionResult<TodoItem> GetTodoItem(int id) { var item = _todoItems.FirstOrDefault(t => t.Id == id); if (item == null) return NotFound(); return item; }
// POST: api/TodoItems [HttpPost] public ActionResult<TodoItem> PostTodoItem(TodoItem item) { item.Id = _todoItems.Count + 1; _todoItems.Add(item); return CreatedAtAction(nameof(GetTodoItem), new { id = item.Id }, item); }
// PUT: api/TodoItems/1 [HttpPut("{id}")] public IActionResult PutTodoItem(int id, TodoItem updatedItem) { var existingItem = _todoItems.First