Guia Profissional: Monitoramento com Prometheus e .NET
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
Gerenciando Secrets e Configs em Docker SwarmAprenda a proteger credenciais, chaves e tokens com Docker Swarm. Gerencie Secrets e Configs de forma segura, garantindo integridade dos dados críticos. 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
Instalando e configurando o MongoDB no Windows e Linux para uso com C#Aprenda a instalar e configurar o MongoDB no Windows e Linux, integrando-o com projetos C# para ambientes de desenvolvimento eficientes. 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 gerar coleção
Entendendo a arquitetura do MongoDB: documentos, coleções e bancos de dadosExplore os pilares da arquitetura MongoDB, integrando bancos de dados, coleções e documentos para impulsionar seu desenvolvimento em C# até 2025.
// 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:
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/


há 10 months atrás
há 11 months atrás
há 11 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás
há 10 months atrás