Este é um projeto simples de controle de estacionamento em uma API RESTFull.
CONFIGURAÇÃO DA API | |
---|---|
Projeto: | Maven |
Linguagem: | Java 17 |
Framework: | Spring Boot 3.1.3 |
Arquitetura: | MSC (Model-Service-Controller) |
Dependências: | Spring Web |
Spring Data JPA | |
Spring Validation | |
SpringDoc OpenAPI | |
PostgreSQL Driver | |
Banco de Dados: | PostgreSQL |
Docker |
- Spring Validation para criação de API com suporte a Pageable
- Global Custom Date Time Format
- Diagrama ER do banco de dados
O projeto implementa um sistema de controle de estacionamento com as seguintes funcionalidades:
- Cadastro, leitura, atualização e exclusão de veículos estacionados.
- Integração com banco de dados PostgreSQL para armazenamento persistente dos dados.
- API RESTful com suporte a paginação (Pageable) para consultas.
Para executar o projeto, certifique-se de ter o Docker instalado em sua máquina. Siga os passos abaixo:
-
Crie um diretório usando o comando mkdir e entre no diretório:
mkdir patrick-fonseca-projetos-java && cd patrick-fonseca-projetos-java
-
Clone o repositório e use o comando no terminal:
git clone git@github.com:PFonsecaFV/java-parking-control.git
-
Acesse o diretório do projeto e instale suas dependências:
cd java-parking-control
-
Utilize o Docker para executar o banco de dados PostgreSQL:
-
Para testar as requisições no Swagger entre no link abaixo:
http://localhost:porta/swagger-ui/index.html#/
- Substitua
localhost
eporta
pelos valores adequados, dependendo de como você configurou a API. - A documentação do Swagger fornecerá informações detalhadas sobre os endpoints da API, parâmetros, exemplos de solicitações e respostas, e muito mais.
- Substitua
Na pasta client_requests
você encontra um arquivo que pode ser importado a um Client REST para testar as requisições.
Este arquivo vem com exemplos de requisições já preenchidas para se testar.
-
Requisições do tipo
POST
-
Requisições do tipo
GET
-
Requisições do tipo
DELETE
-
Requisições do tipo
PUT
-
Requisições do tipo
GET PAGEABLE
Exemplo de entrada para cadastro de vaga
{
"numeroVaga": "205B",
"carroPlaca": "FUS1975",
"carroMarca": "Volkswagen",
"carroModelo": "Fusca 1300",
"carroCor": "Preto",
"nomeDoResponsavel": "Patrick Fonseca",
"apartamento": "205",
"bloco": "B"
}
Alguns exemplos caso queira testar
{
"numeroVaga": "205B",
"carroPlaca": "FUS1975",
"carroMarca": "Volkswagen",
"carroModelo": "Fusca 1300",
"carroCor": "Preto",
"nomeDoResponsavel": "Patrick Fonseca",
"apartamento": "205",
"bloco": "B"
}
{
"numeroVaga": "160A",
"carroPlaca": "VER1991",
"carroMarca": "Chevrolet",
"carroModelo": "Veraneio",
"carroCor": "Marrom",
"nomeDoResponsavel": "José Fonseca",
"apartamento": "137",
"bloco": "B"
}
{
"numeroVaga": "200A",
"carroPlaca": "MAV1976",
"carroMarca": "Ford",
"carroModelo": "Maverick",
"carroCor": "Amarelo",
"nomeDoResponsavel": "Anderson Fonseca",
"apartamento": "200",
"bloco": "A"
}
{
"numeroVaga": "170A",
"carroPlaca": "CAM2000",
"carroMarca": "Chevrolet",
"carroModelo": "Camaro",
"carroCor": "Amarelo",
"nomeDoResponsavel": "Vinícios Fonseca",
"apartamento": "120",
"bloco": "A"
}
{
"numeroVaga": "150A",
"carroPlaca": "VER1989",
"carroMarca": "Chevrolet",
"carroModelo": "Veraneio",
"carroCor": "Azul",
"nomeDoResponsavel": "Fonseca Anderson",
"apartamento": "180",
"bloco": "A"
}
{
"numeroVaga": "150B",
"carroPlaca": "OPA1978",
"carroMarca": "Chevrolet",
"carroModelo": "Opala",
"carroCor": "Cinza",
"nomeDoResponsavel": "Patrick Anderson",
"apartamento": "150",
"bloco": "B"
}