Essa API tem o objetivo principal de criar e consultar uma cidade. Além de criar, consultar, editar e remover um cliente.


Pré-Requisitos

Antes de rodar o projeto, certifique-se de que você possui o Docker instalado na sua máquina.

Rodar o projeto

Para rodar o projeto, é necessário realizar dois comandos no terminal do seu sistema operacional:

  1. docker-compose build
  2. docker-compose up

Após rodar esses comandos, a API e o Banco de Dados estarão rodando e já será possível fazer requisições na API.


Endpoints

City

POST

Descrição: Insere uma nova cidade.

Endpoint: http://localhost:3000/city

Exemplo de request:

curl --location --request POST 'http://localhost:3000/city' \ --header 'Content-Type: application/json' \ --data-raw '{ "name": "Chapecó", "uf": "SC" }'

Exemplo de Response:

{ "id": 1, "name": "Chapecó", "uf": "Santa Catarina" }


GET

Descrição: Busca uma cidade pelo nome.

Endpoint: http://localhost:3000/city/:name

Exemplo de request:

curl --location --request GET 'http://localhost:3000/city/Chapecó'

Exemplo de Response:

{ "id": 1, "name": "Chapecó", "uf": "Santa Catarina" }


GET

Descrição: Busca uma cidade pelo nome do estado + nome da cidade.

Endpoint: http://localhost:3000/uf/:uf/city/:name

Exemplo de request:

curl --location --request GET 'http://localhost:3000/uf/SC/city/Chapecó'

Exemplo de Response:

{ "id": 1, "name": "Chapecó", "uf": "Santa Catarina" }


Client

POST

Descrição: Insere um novo cliente.

Endpoint: http://localhost:3000/client

Exemplo de request:

curl --location --request POST 'http://localhost:3000/client' \ --header 'Content-Type: application/json' \ --data-raw '{ "fullName": "Ayrton", "age": 25, "birthDate": "01/10/1996", "sex": "Masculino", "cityId": 1 }'

Exemplo de Response:

{ "age": 25, "birthDate": "1996-01-10T00:00:00.000Z", "fullName": "Ayrton", "sex": "Masculino", "city": { "id": 1, "name": "Chapecó", "uf": "Santa Catarina" }, "id": 5 }


GET

Descrição: Busca um cliente pelo id.

Endpoint: http://localhost:3000/client/id/:id

Exemplo de request:

curl --location --request GET 'http://localhost:3000/client/id/1'

Exemplo de Response:

{ "id": 1, "fullName": "Ayrton", "sex": "Masculino", "birthDate": "1996-01-20", "age": 25, "city": { "id": 1, "name": "Palmitos", "uf": "SC" } }


PATCH

Descrição: Atualiza o nome de um cliente.

Endpoint: http://localhost:3000/client/id/:id

Exemplo de request:

curl --location --request PATCH 'http://localhost:3000/client/id/1' \ --header 'Content-Type: application/json' \ --data-raw '{ "fullName": "Daniel" }'

Exemplo de Response: SEM RESPONSE. Retorna status 204 quando a operação é realizada com sucesso.


DELETE

Descrição: Deleta um cliente.

Endpoint: http://localhost:3000/client/id/:id

Exemplo de request:

curl --location --request DELETE 'http://localhost:3000/client/id/2'

Exemplo de Response: SEM RESPONSE. Retorna status 204 quando a operação é realizada com sucesso.