Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Grupo-1-6NETT/fiap6-net-kubernets-f4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API de Gerenciamento de Contatos

Este repositório contem um conjunto de aplicações que propõem solucionar o Tech Challenge da Fase 4 do curso de pós graduação 6NETT na FIAP.

Na imagem abaixo é ilustrada a arquitetura utilizada para orquestrar as aplicações: Diagrama Arquitetura

teste

Índice

Pré-requisitos

Configuração do Projeto

Este projeto pode ser executado via Docker Compose ou em um cluster Kubernetes.

1. Clone o repositório:

git clone https://github.com/Grupo-1-6NETT/fiap6-net-kubernets-f4 

2. Inicie todos os serviços (API, Prometheus, Grafana, Node Exporter):

docker-compose up --build

Após iniciar, o gateway estará disponível em:

3. Execução em Kubernetes: Requisitos:

  • kubectl
  • Um cluster Kubernetes ativo (minikube, Kind, AKS, etc.)

Passos:

  1. Aplique os manifests Kubernetes contidos no repositório:
kubectl apply -f k8s/
  1. Verifique os recursos com:
kubectl get all -n monitoring

Principais Serviços:

Utilize o port-forward se necessário, por exemplo:

kubectl port-forward svc/grafana 3000:3000 -n monitoring

Endpoints da API

Autenticação e Registro de Usuários

Método Endpoint Descrição
GET /Token Gera um token de autenticação para o usuário e senha informados
POST /Usuario Adiciona um Usuário na base de dados

Gerenciamento de Contatos

Método Endpoint Descrição
GET /Contatos Lista os Contatos cadastrados, ordenados por nome, que correspondem aos parâmetros informados
POST /AdicionarContato Adiciona um Contato na base de dados
PATCH /AtualizarContato Atualiza um Contato na base de dados
DELETE /RemoverContato/{id} Remove o contato na base de dados com o ID informado

Uso da API

Para acessar os endpoints, você precisará autenticar o usuário e incluir o token JWT no cabeçalho das requisições aos endpoints protegidos.

Exemplos de Requisições

1. Registrar um Novo Usuário Endpoint: POST /Usuario

Corpo da Requisição:

{
  "nome": "novo_usuario",  
  "senha": "SuaSenha123",
  "permissao": "admin"
}

2. Gerar Token Endpoint: GET /token

Corpo da Requisição:

{
  "usuario": "novo_usuario",
  "senha": "SuaSenha123"
}

Resposta:

 "eyJhbGciOiJIUzI1NiIsInR5..."

3. Criar um Novo Contato Endpoint: POST /contatos

Cabeçalho: Authorization: Bearer {seu_token_jwt}

Corpo da Requisição:

{
  "nome": "Maria Souza",
  "telefone": "99999-9999",
  "ddd": "11",
  "email": "maria.souza@example.com"
}

Configuração do Monitoramento com Prometheus e Grafana

A API já está configurada para expor métricas no endpoint /metrics

Após acessar o Grafana (http://localhost:3000), siga os passos abaixo:

  1. Configure o Prometheus como fonte de dados.
  2. Importe dashboards pré-configurados para métricas de API e sistema.

Testes

Para executar os testes, e para cada solução no repositório, use o comando:

dotnet test

Os testes de unidade foram implementados utilizando o Moq e FluentAssertions para validações.


Tecnologias Utilizadas

  • ASP.NET Core 8 - Framework principal para desenvolvimento da API
  • Entity Framework Core - ORM para manipulação do banco de dados
  • JWT - JSON Web Token para autenticação
  • Swagger - Documentação interativa da API
  • RabbitMQ - Message Broker
  • MassTransit - Transporte de mensagens
  • Azure SQL Database - Banco de dados
  • Moq e FluentAssertions - Testes unitários
  • Prometheus e Grafana - Monitoramento e visualização de métricas
  • Node Exporter - Coleta de métricas de hardware e sistema
  • Azure Function - Para obtenção dos dados de contato
  • Ocelot - API Gateway
  • Docker - Criação de conteiners
  • Kubernetes - Orquestração dos containers

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  
Morty Proxy This is a proxified and sanitized view of the page, visit original site.