API desenvolvida para ser utilizada como base para o desafio de mobile da iClinic
-
Clone ou baixe este repositório
git clone https://github.com/iclinic/api-desafio-mobile.git
- Instale as dependências
npm install
- Scripts disponíveis
Ações | Comando |
---|---|
Iniciar o servidor | npm run now-start |
Este servidor expõe um total de 8 rotas, sendo:
- 3 rotas para a autenticação do usuário
- 5 rotas para a gestão das localizações
- URL:
/auth/login
- Verb: POST
- Type: JSON
- Body:
- email:
required
- password:
required
- email:
- Example:
// POST => http://localhost/auth/login
{
"email": "admin@development.com",
"password": "admin123"
}
- Reponse:
- Type: JSON
// POST => http://localhost/auth/login
{
"auth": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ODE2OCwibmFtZSI6IkRldmVsb3BlciIsImVtYWlsIjoiZGV2QGljbGluaWMuY29tLmJyIiwiaWF0IjoxNTQ3MjA0ODcxLCJleHAiOjE1NDcyOTEyNzF9.KR1CX_tqDx1dQxDdv45-w_lLKUhSAyBUXy5yKS51TyM"
}
- URL:
/auth/register
- Verb: POST
- Type: JSON
- Body:
- name:
required
- email:
required
- password:
required
- name:
- Example:
// POST => http://localhost/auth/register
{
"name": "Administrator",
"email": "admin@development.com",
"password": "admin123"
}
- Response:
- Type: JSON
// POST => http://localhost/auth/register
{
"auth": true,
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Nzg3LCJuYW1lIjoiUGF1bG8gRWR1YXJkbyIsImVtYWlsIjoicGF1bG8uZWR1YXJkb0BpY2xpbmljLmNvbS5iciIsImlhdCI6MTU0NzIwNjQ"
}
- URL:
/auth/logout
- Verb: GET
- Type: JSON
- Response:
- Type: JSON
// GET => http://localhost/auth/logout
{
"auth": false,
"token": null
}
- URL:
/locations
- Verb: GET
- Type: JSON
- Header:
- x-access-token:
required
- x-access-token:
- Response:
- Type: JSON
// GET => http://localhost/locations
[
{
"id": 8654,
"createdBy": 787,
"name": "Nome da Localização",
"address": "Endereço da Localização",
"phone": "(16) 98765-4321",
"type": "Tipo da Localização",
"lat": "10.5432",
"lng": "-11.4321",
"description": "Descrição da Localização"
}
]
- URL:
/locations
- Verb: POST
- Type: JSON
- Header:
- x-access-token:
required
- x-access-token:
- Body:
- name:
required
- address:
required
- phone:
required
|format: (00) 00000-0000
- type:
required
- lat:
required
- lng:
required
- description:
required
- name:
- Example:
{
"name": "Nome da Localização",
"address": "Endereço da Localização",
"phone": "(11) 12346-5432",
"type": "Tipo da Localização",
"lat": "10.2345",
"lng": "-10.2345",
"description": "Descrição da Localização"
}
- Response:
- Type: JSON
// POST => http://localhost/locations
{
"id": 8654,
"createdBy": 787,
"name": "Nome da Localização",
"address": "Endereço da Localização",
"phone": "(11) 12346-5432",
"type": "Tipo da Localização",
"lat": "10.2345",
"lng": "-10.2345",
"description": "Descrição da Localização"
}
- URL:
/locations/:locationId
- Verb: GET
- Type: JSON
- Header:
- x-access-token:
required
- x-access-token:
- Response:
- Type: JSON
// GET => http://localhost/locations/8654
{
"id": 8654,
"createdBy": 787,
"name": "Nome da Localização",
"address": "Endereço da Localização",
"phone": "(16) 98765-4321",
"type": "Tipo da Localização",
"lat": "10.5432",
"lng": "-11.4321",
"description": "Descrição da Localização"
}
- URL:
/locations/:locationId
- Verb: PUT
- Type: JSON
- Header:
- x-access-token:
required
- x-access-token:
- Body:
- name:
required
- address:
required
- phone:
required
|format: (00) 00000-0000
- type:
required
- lat:
required
- lng:
required
- description:
required
- name:
- Example:
{
"name": "Nome da Localização - Atualizado",
"address": "Endereço da Localização - Atualizado",
"phone": "(11) 12346-5432",
"type": "Tipo da Localização - Atualizado",
"lat": "10.2345",
"lng": "-10.2345",
"description": "Descrição da Localização - Atualizado"
}
- Response:
- Type: JSON
// PUT => http://localhost/locations/8654
{
"id": 8654,
"createdBy": 787,
"name": "Nome da Localização - Atualizado",
"address": "Endereço da Localização - Atualizado",
"phone": "(11) 12346-5432",
"type": "Tipo da Localização - Atualizado",
"lat": "10.2345",
"lng": "-10.2345",
"description": "Descrição da Localização - Atualizado"
}
- URL:
/locations/:locationId
- Verb: DEL
- Type: JSON
- Header:
- x-access-token:
required
- x-access-token:
- Body:
- name:
required
- address:
required
- phone:
required
|format: (00) 00000-0000
- type:
required
- lat:
required
- lng:
required
- description:
required
- name:
- Response:
- Type: JSON
// DEL => http://localhost/locations/8654
true