The "freelancer api" is a simple API for managing freelance job advertisements for developers, allowing you to view, register, update and delete advertisements.
-
Realizar login
Endpoint:
POST /login
Parâmetros no Corpo da Requisição:
email
(string) - Email do desenvolvedor .password
(string) - Senha do desenvolvedor
Esta rota permite realizar login, retonando com o token para autenticar o desenvolvedor.
Exemplo de corpo de requisição:
{ "email": "[email protected]", "password": "senhasegura" }
Exemplo de retorno de sucesso (status 200):
{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJlbWFpbCI6ImFsZXhhbmRyZXZpYW5uYTUxMUBnbWFpbC5jb20iLCJpYXQiOjE2OTI5ODkyNzQsImV4cCI6MTY5MzA3NTY3NCwic3ViIjoiMSJ9.VpDXyavwTfLR-tSxCxYRtKcyI_6C-6rAtDRSVepMNzY" }
Exemplo de retorno de erro (status 400):
{ "password": [ "Required" ] }
Exemplo de retorno de erro (status 401):
{ "message": "Username or password is incorrect" }
-
Criar conta developer
Endpoint:
POST /developers
Parâmetros no Corpo da Requisição:
name
(string) - Nome do desenvolvedor.email
(string) - Email do desenvolvedor .password
(string) - Senha do desenvolvedor
Esta rota permite cadastrar uma nova conta com o nome, email e senha fornecidos no corpo da requisição. Ela retorna os dados cadastrados juntamente com o ID gerado para a conta, status da conta e omitindo a senha.
Exemplo de corpo de requisição:
{ "name": "Alexanddre Viana", "email": "[email protected]", "password": "senh@$egur@" }
Exemplo de retorno de sucesso (status 201):
{ "id": 3, "name": "Alexanddre Viana", "email": "[email protected]", "active": true }
Exemplo de retorno de erro (status 400):
{ "password": [ "Required" ] }
Exemplo de retorno de erro (status 500):
{ "message": "Internal server error" }
-
Listar de todos os projetos do desenvolvedor
Endpoint:
GET /developers/:id
Parâmetros:
id
(numérico) - ID da conta do desenvolvedor.- Token - adquirido ao realizar login
Esta rota traz os detalhes de todos os projetos que o desenvolvedor participa/paticipou, referente ao ID passado.
Exemplo de retorno de sucesso (status 200):
[ { "developerId": 1, "developerName": "Alexandre Vianna", "developerEmail": "[email protected]", "developerIsActive": true, "projectId": 1, "projectTitle": "KenzieDevelopers", "projectDescription": "Projeto backend", "projectTechnology": "Express.js", "projectRepository": "github.com/kenzie-Academy-Brasil-Developers/kenziedevelopers", "projectStartDate": "2023-08-24T01:57:26.385Z" } ]
Exemplo de retorno de erro (status 404):
{ "message": "There is no project linked to this developer" }
Exemplo de retorno de erro (status 500):
{ "message": "Internal server error" }
-
Criar Projeto
Endpoint:
POST /projects
Parâmetros:
title
(string) - titulo do projeto.description
(string) - descrição do projeto.technology
(string) - tecnologia utilizada no projeto.repository
(string) - link do repositório.
Esta rota cria um projeto e retonar os dados passados junto com o id.
Exemplo de corpo de requisição:
{ "title": "Controle de estoque", "description": "Criação de api para controle de estoque", "technology": "Node.js", "repository": "github.com/alexandreviannaf" }
Exemplo de retorno de sucesso (status 201):
{ "id": 2, "title": "Controle de estoque", "description": "Criação de api para controle de estoque", "technology": "Node.js", "repository": "github.com/alexandreviannaf" }
Exemplo de retorno de erro (status 400):
{ "repository": [ "Required" ] }
-
Atribuir desenvolvedor a um Projeto
Endpoint:
POST /projects
Parâmetros:
title
(string) - titulo do projeto.description
(string) - descrição do projeto.technology
(string) - tecnologia utilizada no projeto.repository
(string) - link do repositório.
Esta rota cria um projeto e retonar os dados passados junto com o id.
Exemplo de corpo de requisição:
{ "title": "Controle de estoque", "description": "Criação de api para controle de estoque", "technology": "Node.js", "repository": "github.com/alexandreviannaf" }
Exemplo de retorno de sucesso (status 201):
{ "id": 2, "title": "Controle de estoque", "description": "Criação de api para controle de estoque", "technology": "Node.js", "repository": "github.com/alexandreviannaf" }
Exemplo de retorno de erro (status 400):
{ "repository": [ "Required" ] }