A API contém 3 Endpoints: uma de usuários (/users), uma de carros (/cars) e uma de imóveis (/properties).
Somente é possível ter acesso aos usuários se estiver cadastrado.
Assim, inicialmente, é indicado fazer um registro.
POST /user/register
{
"email": "[email protected]",
"password": "123456",
"firstname": "Nome",
"lastname": "Sobrenome"
}
Os itens "firstname" e "lastname" não são obrigatórios.
POST /user/register - FORMATO DA RESPOSTA - STATUS 201
{
"accessToken": "{token de acesso JWT}",
"user": {
"email": "[email protected]",
"firstname": "Nome",
"lastname": "Sobrenome",
"id": {número conforme cadastro}
}
}
"Email format is invalid"
O email deve ter o formato padrão, com @ e .com ao final. Exemplo: [email protected]
"Email and password are required"
Tanto email quando senha são obrigatórios para o registro.
"Password is too short"
Senha deve ter ao menos 4 caracteres.
"Email already exists"
Email já está sendo utilizado por algum usuário. Tentar utilizar outro.
POST /login
{
"email": "[email protected]",
"password": "123456"
}
POST /login - FORMATO DA RESPOSTA - STATUS 201
{
"accessToken": "token de acesso no formato JWT",
"user": {
"email": "[email protected]",
"firstname": "Nome",
"lastname": "Sobrenome",
"id": {número conforme cadastro}
}
}
"Incorrect password"
A senha está diferente da cadastrada. Verificar se digitou corretamente.
"Cannot find user"
O email informado não está cadastrado no sistema. Verifique se o email está digitado corretamente.
Para a cadastro de veículos é necessário que o usuário esteja logado. Assim, é necessário informar o acessToken como Bearer.
POST /carros
{
"model": "Modelo 5",
"year": 2022,
"userId": 2
}
Explicação sobre os dados:
- model: string que contém os dados do veículo como marca e modelo
- year: número com 4 digitos referente ao ano de fabricação do veiculo
- userId: número referente ao if do usuário, conforme cadastro realizado.
Apenas o userId é OBRIGATÓRIO.
POST /cars - FORMATO DA RESPOSTA - STATUS 201
{
"model": "{dados do veículo como marca e modelo}",
"year": {ano no formato (yyyy) de fabricação do veículo},
"userId": {id do usuário, conforme cadastro realizado},
"id": {id o veículo cadastrado}
}
"Private resource creation: request body must have a reference to the owner id"
Não foi informado o userId para cadastro do carro.
Para realizar a pesquisa de todos os veículos cadastrados, não é necessário estar logado.
GET /cars - FORMATO DA RESPOSTA - STATUS 200
[
{
"model": "Modelo",
"year": 2022,
"userId": 2,
"id": 1
},
{
"model": "Modelo 2",
"year": 2022,
"userId": 2,
"id": 2
},
{
"model": "Modelo 3",
"year": 2022,
"userId": 2,
"id": 3
},
{
"model": "Modelo 4",
"year": 2022,
"userId": 2,
"id": 4
},
{
"model": "Modelo 5",
"year": 2022,
"userId": 2,
"id": 5
}
]
É possivel filtrar os veículos através do uso de query params e, para tal, somente usar, depois do endpoint, o tipo de fitro que quer usar (model, year, id ou userId)
Exs.:
- Para o filtro de veículos de certo modelo: /cars?model=Modelo
- Para o filtro de veículos de certo ano: /cars?year=2022
- Para o filtro de veículos de certo usuario: /cars?userId=1
- Para o filtro de veículos através do Id cadastrado: /cars?id=1
Assim como no cadastro de novos veículos, para realizar o cadastro de imóveis também é necessário que o usuário esteja logado e, consequentemente, deve informar o acessToken como Bearer.
POST /properties
{
"type": "apartament",
"area": 70,
"value": 150000,
"userId": 3
}
Explicação sobre os dados:
- type: string contendo se o imóvel é apartamento ou casa
- area: numero informando a area em metros quadrados
- value: o valor avaliado do imóvel
- userId: id do usuário, conforme cadastro realizado
Apenas o userId é OBRIGATÓRIO.
POST /properties - FORMATO DA RESPOSTA - STATUS 201
{
"type" : "{apartment or house}",
"area": {numero informando a area em metros quadrados},
"value": {o valor avaliado do imóvel},
"userId": {id do usuário, conforme cadastro realizado},
"id": {id do imóvel cadastrado}
}
"Private resource creation: request body must have a reference to the owner id"
Não foi informado o userId para cadastro do carro.
Para realizar a pesquisa de todos os veículos cadastrados, não é necessário estar logado.
GET /properties - FORMATO DA RESPOSTA - STATUS 200
[
{
"userId": 3,
"type": "apartment or house",
"area": 0,
"value": 10,
"id": 1
},
{
"type": "apartment or house",
"area": 0,
"value": 10,
"userId": 3,
"id": 2
}
]
É possivel filtrar os imóveis através do uso de query params e, para tal, somente usar, depois do endpoint, o tipo de fitro que quer usar (type, area, id ou userId)
Exs.:
- Para o filtro de veículos de certo type: /cars?type=house
- Para o filtro de veículos de certo área: /cars?area=220
- Para o filtro de veículos de certo usuario: /cars?userId=1
- Para o filtro de veículos através do Id cadastrado: /cars?id=1