Health And Check

Conheça o projeto

O objetivo deste desafio é criar uma API mínima de diagnóstico, responsável por validar e expor informações técnicas da aplicação, garantindo que os principais serviços estejam operacionais.

Instruções

Estrutura, regras e requisitos do projeto

Objetivo

A API deve disponibilizar um endpoint capaz de:

  • Verificar se a conexão com o banco de dados está funcionando
  • Informar o ambiente de execução da aplicação
  • Expor a versão atual da aplicação
  • Informar a data/hora de inicialização da aplicação

Requisitos Técnicos

A solução deve:

  • Retornar o status da conexão com o banco de dados
  • Expor a versão da aplicação
  • Informar o ambiente atual (Development, Staging, Production, etc.)
  • Registrar a data/hora em que a aplicação foi iniciada
  • Não é necessário implementar regras de negócio, CRUD ou migrations

Utilizando o Repositório Oficial

Repositório base:

https://github.com/rocketseat-education/c-sharp-plan-share.git

Regras obrigatórias

  1. Realizar checkout no commit a9d9e2a
  2. Criar uma nova branch local
  3. Remover qualquer vínculo com o repositório original

Não sabe por onde começar? Segue a dica!

### 1. Clonar o repositório ```bash gitclone https://github.com/rocketseat-education/c-sharp-plan-share.gitcd c-sharp-plan-share ``` --- ### 2. Remover o repositório remoto original

Requisitos Funcionais

1. Endpoint de Diagnóstico

Criar um endpoint responsável por expor informações técnicas da aplicação.

Rota

GET/health/check

Exemplo de resposta

{ "version": "1.0.0.0", "environment": "Development", "databaseConnected": true, "applicationStartedAt": "2026-02-10T20:19:42.6432824Z" }

Critérios da resposta

  • version: versão atual da aplicação
  • environment: ambiente de execução
  • databaseConnected: resultado da tentativa de conexão com o banco
  • applicationStartedAt: data/hora de inicialização da aplicação

Banco de Dados

A aplicação deve:

  • Utilizar o banco configurado durante as aulas
  • Tentar abrir uma conexão no momento da requisição
  • Informar se a conexão foi estabelecida com sucesso

Não é necessário:

  • Criar tabelas
  • Implementar CRUD
  • Aplicar migrations

Por que é importante ter um endpoint de teste de saúde?

Um endpoint de saúde (health check) é fundamental para garantir a confiabilidade e a observabilidade da aplicação. Ele permite verificar rapidamente se a API está operacional e se seus serviços essenciais — como banco de dados, cache ou integrações externas — estão funcionando corretamente.

Esse tipo de endpoint é amplamente utilizado por:

  • Orquestradores como Docker e Kubernetes para reiniciar automaticamente containers com falha
  • Ferramentas de monitoramento (APM, Prometheus, etc.) para acompanhar disponibilidade
  • Pipelines de deploy para validar se a aplicação subiu corretamente
  • Times de infraestrutura para diagnóstico rápido em incidentes

Além disso, centralizar informações como versão, ambiente e data de inicialização facilita rastreamento de deploys, auditoria e troubleshooting.

Quero ir além…

Se você gostou de desenvolver uma validação basica de saúde e informações da aplicação, talvez goste de saber que no ecossistema .NET já existe suporte nativo para um health checks através do pacote: Microsoft.Extensions.Diagnostics.HealthChecks

Essa biblioteca te permite:

  • Registrar verificações de saúde personalizadas
  • Validar conexões com banco de dados (SQL Server, PostgreSQL, etc.)
  • Integrar com sistemas de monitoramento
  • Separar verificações de liveness (aplicação está viva) e readiness (aplicação está pronta para uso)

Habilite e aprenda a utilizar a solução Oficial! Segue um link para conhecer sobre: https://www.milanjovanovic.tech/blog/health-checks-in-asp-net-core


3. Desenvolvendo o projeto

Para desenvolver esse projeto, recomendamos utilizar as principais tecnologias que utilizamos durante o desenvolvimento do primeiro módulo da formação.

Caso você tenha alguma dificuldade você pode ir no nosso fórum e deixar sua dúvida por lá!

Após terminar o desafio, caso você queira, você pode tentar dar o próximo passo e deixar a aplicação com a sua cara. Tente mudar o layout, cores, ou até adicionar novas funcionalidades para ir além! 🚀


4. Entrega

Após concluir o desafio, você deve enviar a URL do seu código no Github.

Além disso, que tal fazer um post no LinkedIn compartilhando o seu aprendizado e contando como foi a experiência? É uma excelente forma de demonstrar seus conhecimentos e atrair novas oportunidades!

Obs: Se você se sentir à vontade, pode postar um print do resultado final e nos marcar! Vai ser incrível acompanhar a sua evolução! 💜


5. Considerações finais

Lembre-se que o intuito de um desafio é te impulsionar, por isso, dependendo do desafio, pode ser que você precise ir além do que foi discutido em sala de aula. Mas isso não é algo ruim: ter autonomia para buscar informações extras é uma habilidade muito valiosa e vai ser ótimo pra você treinar ela aqui com a gente!

E lembre-se: tenha calma! Enfrentar desafios faz parte do seu processo de aprendizado!

Se precisar de alguma orientação ou suporte, estamos aqui com você! Bons estudos e boa prática! 💜


Feito com 💜 por Rocketseat 👋

Resolução

Confira os resultados esperados do projeto

Paywall background

Envie o projeto para ver a resolução

Ao enviar seu projeto, você poderá conferir os resultados esperados

Projetos relacionados