Rumo ao Código: Guia Prático para Instalar o Visual Studio
Aprenda a Documentar APIs com Swagger/OpenAPI no .NET
Imagine que sua API🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. é um restaurante. Swagger/OpenAPI é o cardápio digital que mostra aos clientes (desenvolvedores) todos os pratos (endpoints) disponíveis, ingredientes (parâmetros) e como pedir (métodos HTTP
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos.). Vamos aprender a criar esse "cardápio" automaticamente!
Tabela de Conteúdo🔗
1. O que é o Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real./OpenAPI?
2. Por que Documentar sua API🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. Automaticamente?
3. Configurando o Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. no .NET
4. Customizando o Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. e o OpenAPI
5. Exemplo Prático📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável.
6. Swagger + Segurança🛡️ Segurança em SignalR: Autenticação e Autorização!Descubra como implementar JWT e autorização com roles e claims no SignalR, garantindo segurança e controle de acessos em tempo real. (JWT)
7. Dicas🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados. de Ouro para Produtividade
8. Conclusão
🔍 O que é o Swagger/OpenAPI?
O Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. (ou OpenAPI) é um conjunto de ferramentas e especificações que permite descrever e documentar endpoints
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. de uma API. Com ele, você consegue:
- Gerar documentação interativa: uma página web onde qualquer um pode testar as rotas
🛠️ Controllers: Rotas que Respondem como Mágica!Aprenda a criar e configurar controllers no ASP.NET Core com dicas práticas, exemplos de rotas e integração de serviços, elevando a qualidade da sua API..
- Manter tudo centralizado: todas as informações de parâmetros, retornos e tipos de dados
🧠 Variáveis em C#: Onde os Dados Ganham Vida (e Nome!)Descubra como as variáveis em C# funcionam, com exemplos do mundo real, boas práticas de nomeação e dicas para otimizar seu código. ficam no mesmo lugar.
- Facilitar o onboarding: novos devs ou equipes de outras áreas entendem a API
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. rapidamente.
📚 Por que Documentar sua API Automaticamente?
Você pode até pensar: “por que não escrever a doc num arquivo do Word e pronto?” Bom, além de poder ficar desatualizado em dois cliques, escrever manualmente a cada atualização da API costuma ser cansativo - e gerar erros. Já com Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real.:
- Atualização automática
🚀 Deploy de Apps Desktop: Instaladores que Encantam o Usuário!Aprenda a criar instaladores profissionais para aplicativos desktop em .NET com nossas dicas de UX, auto-update e validação completa do deploy.: tudo se atualiza conforme o código muda.
- Testes rápidos: você pode fazer requisições direto pela interface do Swagger UI
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real..
- Padronização: segue a especificação OpenAPI, amplamente adotada na indústria.
📊 Dado importante: APIs bem documentadas reduzem o tempo de integração em 40% (Fonte: SmartBear)
⚙️ Configurando o Swagger no .NET
A configuração🚀 Scale Out com Redis: Atenda Milhões de Conexões!Integre o Redis com SignalR no .NET e distribua mensagens entre servidores, alcançando escalabilidade e alta performance em tempo real. costuma ser bem tranquila. Em projetos mais recentes de .NET, por exemplo, .NET 6 ou superior, você faz algo como:
var builder = WebApplication.CreateBuilder(args);
// 1. Adiciona serviços para o Swagger/OpenAPI
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// 2. Habilita o Swagger e a UI
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
// Rotas ou Endpoints aqui...
app.MapGet("/", () => "Hello API com Swagger!");
app.Run();
Passo a passo para projetos🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades! .NET 8+:
dotnet add package Swashbuckle.AspNetCore
2. Configure no Program.cs
:
// Adicione após criar o builder
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
// Adicione antes de app.Run()
app.UseSwagger();
app.UseSwaggerUI(c => {
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Minha API V1");
});
3. Acesse a UI em:
https://localhost:5001/swagger
🎨 Customizando o Swagger e o OpenAPI
A documentação padrão já ajuda, mas📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. você pode deixar ainda mais profissional. Alguns exemplos:
1. Adicionar descrições e metadados📜 Atributos Customizados: Metadados que Guiam seu Código!Descubra como atributos customizados potencializam a organização do código, facilitam auditorias e testes, e garantem eficiência.
Você pode configurar na AddSwaggerGen()
para adicionar📦 List<T>: Dinamismo além dos Arrays!Descubra como utilizar List<T> em C# de forma eficiente. Aprenda a criar, manipular e otimizar listas para diferentes cenários com exemplos práticos. título, descrição, versão e até contato do time de desenvolvimento.
builder.Services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
{
Title = "Minha Super API",
Version = "v1",
Description = "API fantástica para gerenciar produtos."
});
});
Se você documentar seus métodos🧠 Métodos em C#: Como Criar Funções que Não São Só Enfeites!Otimize seu código em C# com métodos inteligentes. Aprenda práticas de reutilização, sobrecarga e escopo para melhorar a clareza e a eficiência. com
///
, dá para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! importar essa descrição e gerar uma doc ainda mais rica, usando:
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
options.IncludeXmlComments(xmlPath);
3. Versões múltiplas de API🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real.
Quando📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. sua API crescer, você pode criar
SwaggerDoc("v2", ...)
e📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades. ter várias versões simultâneas, ajudando a manter retrocompatibilidade sem bagunça.
Atributo | Função |
---|---|
[ProducesResponseType] | Documenta códigos de status HTTP |
[Obsolete] | Marca endpoints como depreciados |
[ApiExplorerSettings] | Controla visibilidade no Swagger |
🌦️ Exemplo Prático
Pense numa empresa que precisa expor uma API de cadastro de produtos. Com o Swagger/OpenAPI configurado, a equipe de produtos🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio. ou QA poderia abrir a rota
/swagger
e🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real./index.html
📊 Behavior-Driven Development: Testes que Todo Mundo Entende!Descubra como o BDD transforma testes em linguagens acessíveis. Aprenda a usar SpecFlow em C# para criar testes claros, colaborativos e sem ambiguidades.:
- Ver as rotas
🛠️ Controllers: Rotas que Respondem como Mágica!Aprenda a criar e configurar controllers no ASP.NET Core com dicas práticas, exemplos de rotas e integração de serviços, elevando a qualidade da sua API. (GET, POST, PUT, DELETE
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos.) disponíveis.
- Testar um POST
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. com JSON para criar um novo produto direto na interface
📜 Interfaces: Contratos que Garantem a Ordem no Universo OOP!Descubra como as interfaces em C# funcionam como contratos que garantem implementações flexíveis e robustas, facilitando o design e testes de sistemas. do Swagger.
- Conferir a resposta 200 ou 400 e ver se tudo bate com o esperado (nome do produto
🔢 Operadores Aritméticos: Faça Cálculos como uma Calculadora Humana!Aprenda a dominar operadores aritméticos em C# com exemplos práticos, técnicas de cálculo e dicas para evitar erros e maximizar resultados., preço, ID gerado etc.).
Documentando um endpoint📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. de login:
/// <summary>
/// Autentica usuário e retorna JWT
/// </summary>
/// <param name="credenciais">Email e senha do usuário</param>
/// <response code="200">Retorna o token JWT</response>
/// <response code="400">Credenciais inválidas</response>
[HttpPost("login")]
[ProducesResponseType(typeof(AuthResponse), 200)]
[ProducesResponseType(400)]
public IActionResult Login([FromBody] LoginDto credenciais)

🔐 Swagger + Segurança (JWT)
Adicione autenticação🔑 Autenticação JWT: Proteja sua API com Tokens!Descubra como implementar autenticação JWT no ASP.NET Core com exemplos práticos, boas práticas de segurança e dicas para proteger suas APIs de forma eficiente. à documentação:
builder.Services.AddSwaggerGen(c => {
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme {
Description = "JWT Authorization header using the Bearer scheme",
Type = SecuritySchemeType.Http,
Scheme = "bearer"
});
c.AddSecurityRequirement(new OpenApiSecurityRequirement {
{
new OpenApiSecurityScheme {
Reference = new OpenApiReference {
Type = ReferenceType.SecurityScheme,
Id = "Bearer"
}
},
new string[] {}
}
});
});
💡 Dicas de Ouro para Produtividade
1. Versionamento🤝 GitHub Básico: Versionamento para Iniciantes!Descubra como o GitHub facilita colaboração, versionamento e organização de código com este tutorial prático e essencial para desenvolvedores iniciantes.: Use
c.SwaggerDoc("v2", ...)
para🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! documentar múltiplas versões
2. Filtros🎲 Desafio: Analise Dados de Vendas com LINQ e Coleções!Aprenda a usar coleções e LINQ em C# para analisar vendas, filtrar dados e extrair insights estratégicos que otimizem decisões e impulsionem seu negócio.: Crie filtros personalizados para ocultar endpoints
📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. internos
3. Dark Mode: Ative o tema escuro adicionando ?theme=dark
na URL do Swagger UI🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real.
4. Exporte para Postman🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real.: Use o botão "Export" na UI para
🔄 Loops em C#: Repita Tarefas sem Enlouquecer (Com for e while!)Descubra como automatizar repetições em C# utilizando loops for e while com exemplos práticos que evitam erros e otimizam seu código. Aprenda mais! gerar coleção
// Exemplo de filtro para ocultar endpoints
c.DocumentFilter<HideInternalEndpointsFilter>();
🚀 Desafio Prático🔗
Implemente Swagger🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. em seu projeto atual:
1. Adicione as configurações básicas
2. Documente 1 endpoint📡 RESTful 101: Princípios que Todo Dev API Precisa Saber!Descubra os fundamentos do REST e boas práticas para criar APIs simples, escaláveis e eficientes. Domine métodos HTTP e status codes com exemplos práticos. com XML comments
3. Adicione exemplos de request/response
4. Configure autenticação JWT🔑 Autenticação JWT: Proteja sua API com Tokens!Descubra como implementar autenticação JWT no ASP.NET Core com exemplos práticos, boas práticas de segurança e dicas para proteger suas APIs de forma eficiente. (se aplicável)
5. Compartilhe a URL do Swagger UI🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real. com seu time!
Dica bônus: Use [SwaggerOperation]
para títulos🌐 LinkedIn para Devs .NET: Perfil que Atrai Recrutadores!Aprenda a otimizar seu perfil LinkedIn com dicas essenciais para devs .NET. Conquiste oportunidades e destaque suas habilidades! customizados:
[SwaggerOperation(Summary = "Cadastra novo produto",
Description = "Require permissão de Admin")]
Conclusão🔗
Documentar automaticamente suas rotas🛠️ Controllers: Rotas que Respondem como Mágica!Aprenda a criar e configurar controllers no ASP.NET Core com dicas práticas, exemplos de rotas e integração de serviços, elevando a qualidade da sua API. com Swagger
🌍 Projeto: API de E-Commerce com ASP.NET Core e SQL Server!Aprenda a construir uma API robusta para e-commerce com ASP.NET Core, EF Core, JWT e Swagger, validando suas habilidades em um projeto prático real./OpenAPI não é só um “extra”; é uma das melhores práticas
📝 Logging com Serilog: Registre Tudo como um Detetive de Bugs!Aprenda a usar Serilog em .NET para registrar logs estruturados, identificar erros e enriquecer informações, transformando seu código num enigma solucionável. no desenvolvimento de APIs. Deixa tudo mais claro, acessível, simples de testar e veloz para evoluir. Se você ainda não usa, vale muito a pena experimentar e ver a diferença no dia a dia de desenvolvimento!
Autor: Marcelo V. Souza - Engenheiro de Sistemas e Entusiasta em IoT e Desenvolvimento de Software, com foco em inovação tecnológica.
Referências🔗
- .NET Documentation: learn.microsoft.com/pt-br/dotnet/
- Awesome .NET: github.com/quozd/awesome-dotnet
- C# Language Specification: learn.microsoft.com/pt-br/dotnet/csharp/language-reference/language-specification/
- GitHub: Microsoft/.NET: github.com/dotnet
- Microsoft Learn: C# e .NET: learn.microsoft.com/pt-br/dotnet/csharp/