Publicado
- 3 min read
Criando sua Primeira API REST com .NET: Guia Prático e Didático

Criando sua Primeira API REST com .NET
Introdução
A construção de APIs (Application Programming Interfaces) é uma habilidade essencial para desenvolvedores backend, permitindo que diferentes sistemas se comuniquem de forma eficiente e segura. O .NET, com sua robusta plataforma ASP.NET Core, facilita a criação de APIs escaláveis, seguras e de alta performance, frequentemente usadas tanto no mercado nacional quanto internacional. Neste artigo, você aprenderá a desenvolver uma API RESTful desde o zero, usando .NET, visando clareza e didática para quem está começando.
Pré-requisitos
- Conhecimento básico de lógica de programação
- Noções de C#
- Visual Studio ou VS Code instalado
- .NET SDK instalado (Clique aqui para baixar)
- Postman ou Insomnia (opcional, para testar a API)
Principais Conceitos de APIs com .NET
Antes de partirmos para código, alguns conceitos importantes:
- API REST: Um padrão de integração baseado em HTTP, simples e muito utilizado.
- Rotas (Routes): Definem como as URLs são mapeadas para métodos.
- Controllers: Classes responsáveis por responder as requisições HTTP.
- Modelos (Models): Estruturas de dados que representam entidades do sistema.
Exemplo de Código – Criando uma API Simples
1. Criando o projeto
Abra o terminal ou prompt de comando e digite:
dotnet new webapi -n MinhaPrimeiraApi
cd MinhaPrimeiraApi
2. Estrutura Básica
O template já cria uma estrutura mínima. Você verá algo assim:
MinhaPrimeiraApi/
│
├── Controllers/
│ └── WeatherForecastController.cs
├── Program.cs
└── Startup.cs (em versões mais antigas)
3. Criando seu próprio Controller
Vamos criar um controller simples para gerenciar uma lista de livros.
Dentro da pasta Controllers
, crie o arquivo LivrosController.cs
:
using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
namespace MinhaPrimeiraApi.Controllers
{
[ApiController]
[Route("[controller]")]
public class LivrosController : ControllerBase
{
private static List<string> livros = new List<string>
{
"O Senhor dos Anéis",
"1984",
"O Hobbit"
};
[HttpGet]
public IEnumerable<string> Get()
{
return livros;
}
[HttpPost]
public IActionResult Post([FromBody] string livro)
{
livros.Add(livro);
return CreatedAtAction(nameof(Get), new { }, livro);
}
}
}
Este controller permite listar livros (GET /livros
) e adicionar novos (POST /livros
).
4. Testando a API
Execute:
dotnet run
Por padrão, a API rodará em http://localhost:5000
ou https://localhost:5001
. Use uma ferramenta como Postman ou o próprio navegador para fazer requisições.
Projeto Prático: Crud de Livros
Que tal melhorar nossa API, adicionando operações de leitura, criação, edição e exclusão (CRUD) de livros? Faça um upgrade no controller, utilizando um Model:
public class Livro
{
public int Id { get; set; }
public string Titulo { get; set; }
}
Atualize o controller para utilizar uma lista de Livro
e implemente os métodos Put
e Delete
.
Padrões de Projeto Aconselháveis
- Repository Pattern: Separação de lógica de acesso a dados, facilitando testes e manutenção.
- DTOs (Data Transfer Objects): Para separar entidades dos modelos de transporte de dados da API.
- Dependency Injection: Utilize os mecanismos próprios do ASP.NET Core para injeção de dependências.
- Validação de modelos: Use
[Required]
,[StringLength]
e outros atributos de validação para garantir dados corretos na sua API.
Próximos Passos para Aprofundamento
- Implementar autenticação e autorização (JWT)
- Persistir dados em banco de dados (Entity Framework Core)
- Aplicar testes automatizados (xUnit / NUnit)
- Aprender sobre versionamento de APIs
Possíveis Erros e Como Solucionar
Erro: “No connection could be made because the target machine actively refused it.”
- Solução: Verifique se a API está rodando (
dotnet run
) e se a URL está correta.
Erro: “CORS policy: No ‘Access-Control-Allow-Origin’ header”
- Solução: Habilite CORS em
Program.cs
ouStartup.cs
adicionando:
app.UseCors(builder =>
builder.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader());
Erro: 415 Unsupported Media Type
- Solução: Garanta que o header
Content-Type
do POST está definido comoapplication/json
.
Materiais de Apoio e Aprendizado
- Documentação Oficial do ASP.NET Core
- DotNet CLI Docs
- Curso Gratuito .NET no YouTube - Balta.io
- Postman para Testar APIs
Se você seguir este passo a passo, terá uma API funcional e poderá expandir para outros recursos. Lembre-se: errar faz parte do processo de aprendizado, e documentação é sua maior aliada!
Boas codadas! 🚀