Deve ser entregue um link para um repositório público no Github com o código do desafio.
O desafio consiste no desenvolvimento de duas aplicações que devem seguir os seguintes requisitos obrigatórios:
- Desenvolvidas em Golang versão 1.21 ou superior.
- Test Driven Development (TDD); Não é necessário testar o HTTP ou GRPC, apenas o dominio da aplicação.
- Arquitetura hexagonal (DDD); Utilizar os conceitos para a estrutura interna dos projetos.
- Interação com Postgres ou CockroachDB.
- Conter um readme explicando como executar as aplicações.
- Conter logs utilizando a biblioteca
log/slogcom informações úteis sobre a execução do programa. - Os commits devem ser bem descritos e em ordem cronológica.
O serviço expõe 2 endpoints GRPC e faz a interação com o banco de dados.
Endpoint 1: Cria um TODO no banco de dados.
Endpoint 2: Retorna todos os TODO's do banco de dados.
O gateway é responsável por fazer a interface entre a API pública (HTTP REST) e o serviço (GRPC). Todas as validações do body, headers, tokens, etc, devem ser feitas no gateway.
Deve expor 3 endpoints HTTP rest:
Retorna um token. Como estamos falando de uma aplicação de testes, não é necessário fazer uma conexão com um banco de dados para validar usuário e senha, pode utilizar strings fixas.
Se o token no header for válido, fazer o proxy com o serviço, enviando via GRPC para o serviço e retornando a resposta obtida.
Se o token no header for válido, fazer o proxy com o serviço, enviando via GRPC para o serviço e retornando a resposta obtida.
Uh oh!
There was an error while loading. Please reload this page.