A api é construida utilizando a linguagem javascript, junto com alguns frameworks e serviços externos.
Como roteados das rotas da aplicação foi utilizado o framework express, junto com o JWT (Json web token) para controlar e autenticar o acesso de usuários as funcionalidades do serviço. como banco de dados foi utilizado o serviço Mongodb Atlas junto com o Mongoose, e como como serviço de CDN foi utilizado o Cloudinary.
Rota destinada ao login/autenticação do usuário
//--------------REQUEST--------------
body:{
"email": "[email protected]",
"password": "teste"
}
//--------------RESPONSE--------------
{
"message": "Success!",
"user": {
"_id": "0000000000",
"name": "teste",
"email": "[email protected]",
"phone": "0000000000",
"localization": "cidade teste"
},
"accessToken": "Bearer:token.teste.0000"
}
Rota destinada ao cadastro de usuário
//METHOD: POST
//--------------REQUEST--------------
Body
{
"email": "[email protected]",
"password": "teste",
"name": "teste",
"phone": "00000000000",
"localization": "cidade teset"
}
//--------------RESPONSE--------------
{
"message": "Success!",
"user": {
"_id": "000000000000",
"name": "teste2",
"email": "[email protected]",
"phone": "69993707070",
"localization": "ji-paraná",
},
"accessToken": "Bearer:token.teste.0000"
}
Os casso listados nesta função pertencem há sua cidade
//METHOD: GET
//--------------REQUEST--------------
Query params
{
"page": 1,
"localization": "Ji-Paraná"
}
Header params
{
"Authorization": "Bearer:token.teste.0000"
}
//--------------RESPONSE--------------
[
{
"_id": "000000000000",
"title": "Caso teste 2",
"description": "este é um caso teste 2",
"localization": "Ji-Paraná",
"phone": "69993707070",
"user_id": "5eaf83f1b33903347451b1e9"
},
{
"_id": "000000000000",
"title": "Caso teste 2",
"description": "este é um caso teste 2",
"localization": "Ji-Paraná",
"phone": "69993707070",
"user_id": "5eaf83f1b33903347451b1e9"
}
]
Está rota é para a criação de um novo caso
//METHOD: POST
//CETICO
//--------------REQUEST--------------
Body
{
"title": "title example",
"description": "description example"
}
Header params
{
"Authorization": "Bearer:token.teste.0000"
}
//--------------RESPONSE--------------
{
"message": "Success!",
"case": {
"_id": "5eb3636c321cb009ec68cc28",
"title": "Caso teste 3",
"description": "este é um caso teste 3",
"localization": "ji-paraná",
"phone": "69993707070",
"user_id": "5ea8c07ccdc1d13284b59ea5",
}
}
Está rota é especifica para atualizar um caso
//METHOD: PUT
//--------------REQUEST--------------
Body
{
"case_id": "00000000000000",
"title": "title example",
"description": "description example"
}
Header params
{
"Authorization": "Bearer:token.teste.0000"
}
//--------------RESPONSE--------------
{
"message": "Success!",
}
Está rota é responsável por deletar um caso existente
//METHOD: DELETE
//--------------REQUEST--------------
Query params
{
"case_id": "00000000000000",
}
Header params
{
"Authorization": "Bearer:token.teste.0000"
}
//--------------RESPONSE--------------
{
"message": "Success!",
"status": true
}
Está rota tem como função e objetivo o upload de imagens de casos,
//METHOD: POST
//--------------REQUEST--------------
enctype="multipart/form-data"
Body
{
"file": {"image"}
}
Header params
{
"Authorization": "Bearer:token.teste.0000"
}
//--------------RESPONSE--------------
{
"message": "Success!",
"result": {
"_id": "000000000000",
"name": "image",
"url": "http://res.cloudinary.com/aabbbcccddd/image/upload/image.jpg",
"case_id": "5eb3a50e76804a3720859845",
"__v": 0
}
}