Endpoints dos Serviços
1. Introdução
Este documento descreve os endpoints dos principais serviços da aplicação Calculus, incluindo suas rotas e portas. Os serviços estão segmentados de acordo com suas responsabilidades, como gestão de usuários e gestão de conteúdos. Cada serviço expõe uma série de endpoints RESTful que permitem a interação com a aplicação. Este documento é essencial para assegurar que os diferentes componentes do sistema possam se comunicar de forma eficaz.
2. UserService
O UserService é responsável pela gestão e autenticação dos usuários na plataforma Calculus. Este serviço lida com operações como registro, login, gerenciamento de tokens e redefinição de senha.
2.1. Endpoints
Método | Rota | Descrição |
---|---|---|
POST | /api/v1/users |
Criação de um novo usuário |
GET | /api/v1/users/verify |
Verificação de conta de usuário por token |
GET | /api/v1/users/:userId/subscribedJourneys |
Recupera as jornadas inscritas do usuário |
GET | /api/v1/users |
Lista todos os usuários |
PATCH | /api/v1/users/:id/add-point |
Adiciona um ponto ao usuário |
POST | /api/v1/users/:userId/subscribe/:journeyId |
Inscreve o usuário em uma jornada |
DELETE | /api/v1/users/:userId/unsubscribe/:journeyId |
Remove o usuário de uma jornada |
POST | /api/v1/users/:userId/complete/:trailId |
Marca uma trilha como completa para o usuário |
GET | /api/v1/users/:userId/completedTrails |
Recupera as trilhas completadas do usuário |
GET | /api/v1/users/:id |
Recupera informações de um usuário específico |
DELETE | /api/v1/users/:id |
Deleta um usuário específico |
PATCH | /api/v1/users/:id/role |
Atualiza o papel de um usuário (requer permissão de administrador) |
POST | /api/v1/auth/login |
Autenticação de usuário (login) |
GET | /api/v1/auth/google |
Inicia autenticação com Google |
GET | /api/v1/auth/google/callback |
Callback da autenticação com Google |
GET | /api/v1/auth/microsoft |
Inicia autenticação com Microsoft |
GET | /api/v1/auth/microsoft/callback |
Callback da autenticação com Microsoft |
GET | /api/v1/auth/validate-token |
Valida um token de acesso |
POST | /api/v1/auth/refresh |
Geração de um novo token de acesso através de um refresh token |
PUT | /api/v1/auth/change-password |
Troca a senha do usuário autenticado |
POST | /api/v1/auth/forgot-password |
Solicita redefinição de senha |
PUT | /api/v1/auth/reset-password |
Reseta a senha do usuário |
2.2. Configuração de Porta
O UserService opera na porta 3000. Todas as requisições a esse serviço devem ser direcionadas para essa porta no servidor onde o serviço está hospedado.
Host: calculus-dev.eastus2.cloudapp.azure.com
Port: 3000
3. StudioMakerService
O StudioMakerService é responsável pela criação, edição e gestão dos conteúdos educacionais, incluindo a organização de jornadas e trilhas. Professores utilizam este serviço para gerenciar o conteúdo que será consumido pelos alunos.
3.1. Endpoints
Método | Rota | Descrição |
---|---|---|
POST | /api/v1/contents |
Criação de um novo conteúdo |
GET | /api/v1/contents/:id |
Recupera um conteúdo pelo ID |
GET | /api/v1/contents |
Lista todos os conteúdos |
GET | /api/v1/contents/trail/:id |
Recupera todos os conteúdos de uma trilha |
PATCH | /api/v1/contents/:id |
Atualiza um conteúdo pelo ID |
DELETE | /api/v1/contents/:id |
Exclui um conteúdo pelo ID |
PATCH | /api/v1/contents/order/update-order |
Atualiza a ordem dos conteúdos |
POST | /api/v1/trails |
Criação de uma nova trilha |
GET | /api/v1/trails/:id |
Recupera uma trilha pelo ID |
GET | /api/v1/trails |
Lista todas as trilhas |
GET | /api/v1/trails/journey/:id |
Recupera todas as trilhas de uma jornada |
PUT | /api/v1/trails/:id |
Atualiza uma trilha pelo ID |
PUT | /api/v1/trails/:id/addContent |
Adiciona um conteúdo a uma trilha |
PUT | /api/v1/trails/:id/removeContent |
Remove um conteúdo de uma trilha |
DELETE | /api/v1/trails/:id |
Exclui uma trilha pelo ID |
PATCH | /api/v1/trails/update-trail-order |
Atualiza a ordem das trilhas |
POST | /api/v1/journeys |
Criação de uma nova jornada |
GET | /api/v1/journeys |
Lista todas as jornadas |
GET | /api/v1/journeys/point/:id |
Recupera as jornadas associadas a um ponto |
GET | /api/v1/journeys/:id |
Recupera uma jornada pelo ID |
PUT | /api/v1/journeys/:id |
Atualiza uma jornada pelo ID |
DELETE | /api/v1/journeys/:id |
Exclui uma jornada pelo ID |
PATCH | /api/v1/journeys/:id/add-trail |
Adiciona uma trilha a uma jornada |
PATCH | /api/v1/journeys/update-journeys-order |
Atualiza a ordem das jornadas |
POST | /api/v1/points |
Criação de um novo ponto |
GET | /api/v1/points |
Lista todos os pontos |
GET | /api/v1/points/user/:id |
Recupera os pontos associados a um usuário |
GET | /api/v1/points/:id |
Recupera um ponto pelo ID |
PUT | /api/v1/points/:id |
Atualiza um ponto pelo ID |
DELETE | /api/v1/points/:id |
Exclui um ponto pelo ID |
PATCH | /api/v1/points/:id/add-journey |
Adiciona uma jornada a um ponto |
GET | /api/v1/points/:pointId/journeys |
Recupera as jornadas associadas a um ponto |
PATCH | /api/v1/points/update-point-order |
Atualiza a ordem dos pontos |
3.2. Configuração de Porta
O StudioMakerService opera na porta 3002. As requisições destinadas à criação e gestão de conteúdos educacionais devem ser direcionadas para essa porta.
Host: calculus-dev.eastus2.cloudapp.azure.com
Port: 3002
4. Frontend
O Frontend da aplicação Calculus é responsável por fornecer a interface com a qual os usuários interagem. Ele se comunica com os serviços backend (UserService e StudioMakerService) para fornecer funcionalidades como autenticação, visualização e gestão de conteúdos educacionais. Esta seção descreve as rotas principais do frontend e a configuração da porta onde ele é servido.
4.1. Configuração de Porta
O Frontend da aplicação é servido na porta 4000. Os usuários acessam a interface do Calculus através desta porta.
Host: calculus-dev.eastus2.cloudapp.azure.com
Port: 4000
4.2. Comunicação com Backend
O Frontend se comunica com os serviços backend (UserService e StudioMakerService) através de chamadas HTTP/HTTPS. Todas as interações, como autenticação e gerenciamento de conteúdos, são realizadas via APIs RESTful fornecidas pelos serviços backend.
flowchart TD
A[Frontend] -->|3000| B[UserService]
A -->|3002| C[StudioMakerService]
Autor: Calculus Team
5. Segurança dos Endpoints
Todos os endpoints expostos pelos serviços do Calculus são protegidos por mecanismos de autenticação e autorização. Apenas usuários autenticados podem acessar os endpoints que manipulam dados sensíveis ou críticos. Tokens de autenticação, gerenciados pelo UserService, são necessários para acessar a maioria das rotas, garantindo que somente usuários autorizados possam realizar operações.
6. Histórico de Versão
Data | Versão | Descrição | Autor(es) |
---|---|---|---|
01/09/2024 | 1.0 | Criação do documento | Paulo Gontijo |
05/09/2024 | 1.1 | Adicionando mais endpoints | Paulo Gontijo |