Logo

Publicado

- 3 min read

Criando sua Primeira API REST com .NET: Guia Prático e Didático

img of 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 ou Startup.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 como application/json.

Materiais de Apoio e Aprendizado


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! 🚀