Apresentação e Estruturação
Tecnologias e Conceitos Aplicados
- Node.js: Ambiente de execução server-side JS.
- Library Express: Gerenciamento rotas HTTP (Abstração).
- REST API: Representational State Transfer é um estilo Arquitetural REST. REST é um padrão de arquitetura de software que define uma interface de aplicação para a comunicação entre clientes e servidores. Conjunto de padrões, referências arquiteturais juntados e incorporados ao protocolo HTTP.
- RestFull: Termo para designar uma API que segue todos os padrões REST.
- Microservice: Uma abordagem para desenvolver uma solução como um conjunto de pequenos serviços, cada um executando em seu próprio processo. Cada microserviço é uma app stand-alone, reutilizável, executada em uma única máquina (server + database).
- Apps clientes: Browser, Mobile, Outros sistemas via integração. Clientes que vão consumir o microservice.
- Protocol HTTP: Potencial semântico. Basic Authentication: Especificação do protocolo HTTP para autenticação de usuário.
- JWT: JSON Web Token, autenticação de usuário via token.
- TypeScript: Ajuda a manter os padrões de codificação e legibilidade no JavaScript. TypeScript cria interfaces (contratos) de comunicação.
Neste projeto, será responsável pelo gerenciamento de todo o cadastro do usuário, autenticação e validação.
Abstração das funcionalidades de login do usuário.
Recebe as requisições das apps clientes, valida e retorna o resultado.
Especifica como as coisas devem interagir entre si. O que pode ou não ser feito.
Fundamental para desenvolvimento em equipe, evitar bugs e ter limites bem definidos.
Fluxo da Comunicação
Cliente faz requisição para MS solicitando autenticação (login) no sistema.MS valida e autentica usuário, retornando token JWT, se sucesso.
Cliente deverá enviar esse token para todas as outras requisições.
RESUMINDO: O Microserviço de autenticação é uma peça chave de todo o sistema, pois todas as requisições deverão passar por ele para realizarem a validação e permissão.
Métodos e Endpoints da API
Principais: CRUD (Create, Read, Update and Delete) de Usuários
- GET /users Listagem de todos os usuários.
- GET /users/:uuid Listagem de um usuário especifico.
- POST /users Criação de um usuário.
- PUT /users/:uuid Atualização de um usuário especifico.
- DELETE /users/:uuid Exclusão de um usuário especifico.
Auxiliares
- POST /token Gera o Token.
- POST /token/validate Valida um Token.