API de Autenticação e Vagas

Documentação interativa dos endpoints disponíveis para integração.

🔐 Proteção via API Key

Todas as requisições desta API exigem uma API Key ativa. Você deve enviá-la através do cabeçalho x-api-key.

Headers Obrigatórios (Todas as rotas)
x-api-key: api_key_suachaveaqui

Gerenciar Chaves de API →

Registrar Usuário

POST /api/auth/registro

Cria uma nova conta de usuário no sistema (o token é retornado apenas no login).

Body (JSON)
{
  "nome": "João Silva",
  "email": "joao@exemplo.com",
  "senha": "senha_super_segura"
}
Resposta de Sucesso (201 Created)
{
  "mensagem": "Usuário registrado com sucesso!",
  "usuario": {
    "id": "278c2e9b-...",
    "nome": "João Silva",
    "email": "joao@exemplo.com"
  }
}

Autenticar Usuário

POST /api/auth/entrar

Autentica um usuário existente usando e-mail e senha.

Body (JSON)
{
  "email": "joao@exemplo.com",
  "senha": "senha_super_segura"
}
Resposta de Sucesso (200 OK)
{
  "mensagem": "Login realizado com sucesso!",
  "usuario": {
    "id": "278c2e9b-...",
    "nome": "João Silva",
    "email": "joao@exemplo.com"
  },
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI..."
}

Buscar Perfil Requer Autenticação

GET /api/auth/eu

Retorna os detalhes do usuário atualmente logado.

Headers
Authorization: Bearer 
Resposta de Sucesso (200 OK)
{
  "usuario": {
    "id": "278c2e9b-...",
    "nome": "João Silva",
    "email": "joao@exemplo.com",
    "profileImage": "/uploads/image-12345.png",
    "criadoEm": "2026-08-02T18:00:00.000Z"
  }
}

Upload de Imagem de Perfil Requer Autenticação

POST /api/auth/upload-imagem

Envia uma imagem (PNG, JPG) para atualizar o avatar do usuário. Deve ser enviado como multipart/form-data.

Headers
Authorization: Bearer 
Content-Type: multipart/form-data
Body (FormData)
image: (Arquivo da imagem selecionada pelo usuário)
Resposta de Sucesso (200 OK)
{
  "mensagem": "Imagem de perfil atualizada com sucesso!",
  "profileImage": "/uploads/image-12345.png"
}

Fazer Logout

POST /api/auth/sair

Rota de confirmação de logout (a remoção real do JWT deve ser feita no cliente).

Resposta de Sucesso (200 OK)
{
  "mensagem": "Logout realizado com sucesso! Por favor, remova o token no lado do cliente."
}

Vagas

Endpoints para gerenciamento de vagas. Requerem autenticação (Token JWT).

Criar Vaga Requer Autenticação

POST /api/vagas
Headers
Authorization: Bearer 
Body (JSON)
{
  "title": "Desenvolvedor Backend Pleno",
  "description": "Vaga para desenvolvedor focado em Node.js e Prisma",
  "company": "Tech Corp",
  "location": "São Paulo, SP (Híbrido)",
  "status": "aberta"
}
Resposta de Sucesso (201 Created)
{
  "mensagem": "Vaga criada com sucesso!",
  "vaga": {
    "id": "123e4567-e89b-12d3-a456-426614174000",
    "title": "Desenvolvedor Backend Pleno",
    "description": "Vaga para desenvolvedor...",
    "company": "Tech Corp",
    "location": "São Paulo, SP (Híbrido)",
    "status": "aberta",
    "userId": "278c2e9b-...",
    "createdAt": "2026-08-10T12:00:00.000Z",
    "updatedAt": "2026-08-10T12:00:00.000Z"
  }
}

Listar Minhas Vagas Requer Autenticação

GET /api/vagas

Retorna todas as vagas pertencentes ao usuário logado.

Headers
Authorization: Bearer 
Resposta de Sucesso (200 OK)
[
  {
    "id": "123e4567-...",
    "title": "Desenvolvedor Backend Pleno",
    "status": "aberta",
    "createdAt": "2026-08-10T12:00:00.000Z",
    ...
  }
]

Detalhes de uma Vaga Requer Autenticação

GET /api/vagas/:id
Headers
Authorization: Bearer 
Resposta de Sucesso (200 OK)
{
  "id": "123e4567-...",
  "title": "Desenvolvedor Backend Pleno",
  "status": "aberta",
  ...
}

Atualizar Vaga Requer Autenticação

PUT /api/vagas/:id

Atualiza os dados de uma vaga (apenas os campos enviados serão atualizados).

Headers
Authorization: Bearer 
Body (JSON)
{
  "status": "fechada"
}
Resposta de Sucesso (200 OK)
{
  "mensagem": "Vaga atualizada com sucesso!",
  "vaga": { ... }
}

Remover Vaga Requer Autenticação

DELETE /api/vagas/:id
Headers
Authorization: Bearer 
Resposta de Sucesso (200 OK)
{
  "mensagem": "Vaga removida com sucesso!"
}