Bem-vindo à API de Gerenciamento de Processos Judiciais. Este projeto é uma solução backend robusta, desenvolvida como parte de um teste técnico, para gerir processos e agendar audiências, implementando regras de negócio complexas, autenticação segura и uma estrutura de código limpa.
Este projeto foi construído com um conjunto de tecnologias modernas e amplamente utilizadas no ecossistema Java para o desenvolvimento de APIs RESTful.
-
Linguagem e Framework Principal:
- Java 21 (LTS): Versão Long-Term Support da linguagem Java.
- Spring Boot 3.3: Framework principal que acelera o desenvolvimento de aplicações prontas para produção.
- Maven 3.8+: Ferramenta para gestão de dependências e build do projeto.
-
Persistência de Dados:
- Spring Data JPA: Facilita a criação da camada de persistência de dados.
- Hibernate: Implementação da especificação JPA para o mapeamento objeto-relacional (ORM).
- H2 Database: Banco de dados relacional em memória, ideal para desenvolvimento e testes.
-
API e Web:
- Spring Web (MVC): Para a criação de endpoints RESTful.
- Tomcat Embutido: Servidor de aplicação padrão do Spring Boot.
-
Segurança:
- Spring Security 6: Para a implementação da autenticação e autorização.
- JWT (JSON Web Tokens): Para a criação de tokens de acesso stateless e seguros.
-
Documentação e Testes:
- Springdoc OpenAPI (Swagger): Para a geração automática de documentação interativa da API.
- JUnit 5: Framework padrão para testes unitários e de integração.
- Mockito: Para a criação de mocks em testes unitários.
Para executar o projeto localmente, siga os passos abaixo.
- JDK 21 ou superior instalado.
- Apache Maven instalado e configurado nas variáveis de ambiente.
- Uma IDE de sua preferência (IntelliJ IDEA, Eclipse, VS Code) ou apenas a linha de comando.
- Um cliente de API como Postman ou Insomnia (opcional, pois a API pode ser testada via Swagger).
-
Clone o Repositório
git clone https://github.com/babingthon/Gerenciamento_Judicial_API cd management -
Execute a Aplicação via Maven Este é o método mais simples. Na raiz do projeto, execute o seguinte comando no seu terminal:
mvn spring-boot:run
Aguarde até que o log mostre a mensagem
Started ManagementApplication in ... seconds. A aplicação estará a correr emhttp://localhost:8080. -
Acesse as Ferramentas Embutidas
- Documentação Interativa (Swagger UI):
http://localhost:8080/swagger-ui.html - Console do Banco H2:
http://localhost:8080/h2-console- JDBC URL:
jdbc:h2:mem:judicial_db - User Name:
sa - Password: (deixe em branco)
- JDBC URL:
- Documentação Interativa (Swagger UI):
A API é protegida com JWT. Para aceder aos endpoints, você precisa primeiro de se autenticar.
-
Obter um Token de Acesso Faça uma requisição
POSTpara o endpoint de login. Um utilizadoradmincom a palavra-passepasswordé criado automaticamente na primeira inicialização da aplicação.POST /api/v1/auth/loginCorpo da Requisição (Body):
{ "username": "admin", "password": "password" }Resposta:
{ "token": "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6..." }Copie o valor do token gerado.
-
Autorizar as Requisições Para todos os outros endpoints, inclua o token no cabeçalho
Authorization.- Na Swagger UI: Clique no botão "Authorize" no canto superior direito, cole o seu token no campo de texto com o prefixo
Bearer(ex:Bearer eyJhbGci...) e clique em "Authorize". - No Postman/Insomnia/cURL: Adicione um cabeçalho (Header) à sua requisição:
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlhdCI6...
- Na Swagger UI: Clique no botão "Authorize" no canto superior direito, cole o seu token no campo de texto com o prefixo
A documentação completa e interativa com todos os detalhes de request e response está disponível no Swagger UI.
-
Criar um novo processo:
POST /api/v1/process -
Listar processos (com filtros):
GET /api/v1/process?status=ACTIVE&distric=Natal -
Agendar uma nova audiência:
POST /api/v1/audience -
Consultar a agenda de uma comarca:
GET /api/v1/audiences/schedule?distric=Recife&day=2025-10-20
Para facilitar ainda mais os testes, uma coleção do Postman com todos os endpoints configurados está disponível na raiz deste repositório. Importe o ficheiro ProcessesAndAudiences.postman_collection.json no seu Postman para começar a testar imediatamente.
O projeto tem uma suíte de testes unitários e de integração para garantir a qualidade do código e o funcionamento das regras de negócio.
Para executar todos os testes, rode o seguinte comando na raiz do projeto:
mvn clean installEste comando irá compilar o projeto, executar todos os testes e, se tudo passar, empacotar a aplicação num ficheiro .jar.