/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"
}