/auth)| Método | Rota | Proteção JWT | Descrição |
|---|---|---|---|
POST |
/auth/login |
Não | Login de usuário. |
POST |
/auth/refresh |
Não | Atualização de token. |
/user)| Método | Rota | Proteção JWT | Acesso |
|---|---|---|---|
POST |
/user/register |
Não | Público |
POST |
/user/booking |
Sim | Visitor, Organizer, Admin |
GET |
/user/ |
Sim | Admin |
GET |
/user/:id |
Sim | Admin |
PUT |
/user/:id |
Sim | Todos (restrito ao próprio usuário ou Admin) |
DELETE |
/user/:id |
Sim | Admin |
/place) | Método | Rota | Proteção JWT | Acesso |
|---|---|---|---|
POST |
/place/ |
Sim | Organizer, Admin |
GET |
/place/ |
Sim | Todos |
GET |
/place/:id |
Sim | Todos |
PUT |
/place/:id |
Sim | Organizer, Admin |
DELETE |
/place/:id |
Sim | Admin |
/event) | Método | Rota | Proteção JWT | Acesso |
|---|---|---|---|
POST |
/event/ |
Sim | Organizer, Admin |
GET |
/event/ |
Sim | Todos |
GET |
/event/:id |
Sim | Todos |
PUT |
/event/:id |
Sim | Organizer, Admin |
DELETE |
/event/:id |
Sim | Organizer, Admin |
/visited)| Método | Rota | Proteção JWT | Acesso |
|---|---|---|---|
POST |
/visited/ |
Sim | Todos |
GET |
/visited/ |
Sim | Todos (Admin vê tudo) |
GET |
/visited/user/:id |
Sim | Visitor/Admin/Organizer |
GET |
/visited/place/:id |
Sim | Todos |
PUT |
/visited/ |
Sim | Todos |
DELETE |
/visited/ |
Sim | Organizer, Admin |
Abaixo estão exemplos de corpos de requisição JSON esperados para algumas das principais operações de criação e atualização da API. O método HTTP e a rota estão indicados no título de cada exemplo.
POST /auth/login)Utiliza LoginInfoDTO para autenticar um usuário.
Content-Type: application/json
{
"email": "usuario@example.com",
"password": "senhaSegura123"
}
POST /user/register)Utiliza UserDTO para criar um novo usuário (visitor ou organizer).
Content-Type: application/json
{
"name": "Nome Completo do Novo Usuário",
"userLogin": {
"email": "novo.usuario@example.com",
"password": "outraSenhaSegura456"
},
"profilePick": "https://example.com/perfil.jpg",
"role": "visitor"
}
PUT /user/:id)Utiliza UserDTO para atualizar os dados de um usuário existente. Substitua :id no título da rota pelo ID do usuário.
Content-Type: application/json
{
"name": "Nome Atualizado do Usuário",
"userLogin": {
"email": "usuario.atualizado@example.com",
"password": "novaSenhaSuperSegura789"
},
"profilePick": "https://example.com/nova_perfil.jpg",
"role": "organizer"
}
POST /place/)Utiliza PlaceDTO para registrar um novo local.
Content-Type: application/json
{
"name": "Estação das Docas",
"type": "cultural",
"address": {
"postalCode": "66010-020",
"street": "Av. Boulevard Castilhos França",
"numberHouse": 600,
"complement": "Armazém 2"
}
}
PUT /place/:id)Utiliza PlaceDTO para atualizar um local existente. Substitua :id no título da rota pelo ID do local.
Content-Type: application/json
{
"name": "Mercado Ver-o-Peso Renovado",
"type": "market",
"address": {
"postalCode": "66010-030",
"street": "Av. Boulevard Castilhos França",
"numberHouse": 100,
"complement": "Setor Peixes"
}
}
POST /event/)Utiliza EventDTO para criar um novo evento.
Content-Type: application/json
{
"title": "Festival Gastronômico Amazônico",
"eventDate": "2025-11-10T18:00:00.000Z",
"description": "Uma celebração dos sabores únicos da Amazônia na COP-30.",
"place": "UUID-do-local-EstacaoDasDocas"
}
PUT /event/:id)Utiliza EventDTO para atualizar um evento existente. Substitua :id no título da rota pelo ID do evento.
Content-Type: application/json
{
"title": "Festival Gastronômico Amazônico (Edição Especial COP-30)",
"eventDate": "2025-11-12T19:00:00.000Z",
"description": "Edição especial do festival, com foco em sustentabilidade e culinária local.",
"place": "UUID-do-local-EstacaoDasDocas"
}
POST /user/booking)Utiliza BookingDTO para que um usuário se inscreva em um evento.
Content-Type: application/json
{
"eventId": "UUID-do-evento-FestivalAmazonico",
"userId": "UUID-do-usuario-Visitante"
}
POST /visited/)Utiliza VisitedDTO para marcar um local como visitado por um usuário em uma data específica.
Content-Type: application/json
{
"userId": "UUID-do-usuario-Visitante",
"placeId": "UUID-do-local-VerOPeso",
"visitDate": "2025-10-20T10:30:00.000Z"
}
PUT /visited/)Utiliza VisitedDTO para atualizar a data de uma visita existente. A visita é identificada pela combinação de userId e placeId no corpo da requisição.
Content-Type: application/json
{
"userId": "UUID-do-usuario-Visitante",
"placeId": "UUID-do-local-VerOPeso",
"visitDate": "2025-10-20T11:00:00.000Z"
}