https://github.com/leoviana00/spring-park-api
REST API com Spring Boot 3, Spring Security, Spring Data JPA, JWT, Swagger, Testes end2end, DTO - Em andamento ....
https://github.com/leoviana00/spring-park-api
Last synced: about 1 month ago
JSON representation
REST API com Spring Boot 3, Spring Security, Spring Data JPA, JWT, Swagger, Testes end2end, DTO - Em andamento ....
- Host: GitHub
- URL: https://github.com/leoviana00/spring-park-api
- Owner: leoviana00
- License: mit
- Created: 2024-08-29T12:28:03.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2024-09-21T12:15:29.000Z (7 months ago)
- Last Synced: 2025-01-25T10:11:20.217Z (3 months ago)
- Language: Java
- Homepage:
- Size: 313 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
API - Java com Springboot
![]()
![]()
Projeto |
Requisitos |
Arquitetura |
Tecnologias |
Roadmap |
Referências
![]()
## 💡 Projeto
- REST API com Spring Boot 3, Spring Security, Spring Data JPA, JWT, Swagger, Testes end2end, DTO
```
O objetivo será desenvolver um sistema de gerenciamento para estacionamento. Após levantamento
de requisitos junto ao cliente, listaremos as especificações a serem desenvolvidas pela equipe de
back-end.
``````
Importante salientar que o sistema será uma API Rest com autenticação por Json Web
Token (JWT).
``````
O sistema deverá possuir uma documentação dos recursos disponíveis pela API, para
servir de apoio a equipe de front-end.
```## ✅ Requisitos
1. [ ] [Requisitos e Configurações](./doc/Requisitos-configuracoes.md)
2. [ ] [Requisitos / Usuários](./doc/Requisitos-usuarios.md)
3. [ ] [Requisitos / Autenticação](./doc/Requisitos-autenticacao.md)
4. [ ] [Requisitos / Clientes](./doc/Requisitos-clientes.md)
5. [ ] [Requisitos / Vagas](./doc/Requisitos-vagas.md)
6. [ ] [Requisitos / Estacionamentos](./doc/Requisitos-estacionamentos.md)## 💡 Arquitetura
- [Arquitetura REST](./doc/api-rest-arquitetura.md)
- [API REST - Fundamentos](./doc/api-rest-fundamentos.md)
- [API REST - Boas práticas](./doc/api-rest-boaspraticas.md)
- [Padrão de Projetos DTO](./doc/padrao-projeto-dto.md)
- [Validação e Jakarta Bean Validation](./doc/validacao-jakarta-bean-validation.md)
- [Camada de testes](./doc/testes.md)
- [Sistema de Autenticação](./doc/jwt-token.md)## ✨ Tecnologias
- `Spring Boot` (Desenvolver a API REST, aproveitando sua ampla gama de recursos e facilidades de configuração)
- `Spring Security` (Implementar camadas de segurança em sua API, protegendo endpoints sensíveis e autenticando usuários de forma segura)
- `JWT` (Integração do JWT (JSON Web Token) permitirá a autenticação e autorização de forma stateless, garantindo a segurança dos seus serviços)
- `OpenAPI 3 e Swagger` (Gerar documentação dos recursos da API.)
- `Data Transfer Objects` - DTO (Definir objetos específicos para transferir dados entre as camadas da aplicação, evitando o vazamento de informações sensíveis e reduzindo o tráfego desnecessário)
- `Bean Validation` (validar entradas de dados, parâmetros de API e objetos de domínio, garantindo a integridade e a consistência dos dados)
- `JasperReports` (Consultar informações importantes retornadas em um relatório em formato PDF)
- `Spring Data JPA` (Facilita a integração com bancos de dados relacionais)## 👣 Roadmap
- Desenvolver uma API Rest com Spring Boot 3
- Implementar Autenticação utilizando Tokens JWT
- Operações de CRUD com Spring Data JPA
- Documentar uma API Rest com o OpenAPI e Swagger
- Validação de campos com Jakarta Bean Validation
- Boas práticas a se adotar no desenvolvimento de uma API Rest
- Adicionar Segurança na API Rest com Spring Security
- Trabalhar com camada de testes de ponto a ponto (End2End)
- Trabalhar com Postman como plataforma cliente
- Trabalhar com padrão DTO (Data Transfer Object) e ModelMapper
- Configuração de Auditoria com Spring-JPA-Auditing## 📄 Referências
- [O que é ser idempotente em REST?](https://www.infoq.com/br/news/2013/05/idempotent/)
- [HTTP response status codes](https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods)
- [Springboot](https://spring.io/guides/gs/spring-boot)
- [Spring Initializr](https://start.spring.io/)
- [HTTP headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)
- [Equals Method in Java: Best Practices](https://codegym.cc/groups/posts/264-equals-and-hashcode-methods-best-practices)
- [Entendendo o equals e hashCode](https://blog.algaworks.com/entendendo-o-equals-e-hashcode/)
- [Jakarta Bean Validation](https://jakarta.ee/specifications/bean-validation/3.0/jakarta-bean-validation-spec-3.0.html)
- [SpringdDoc API 3](https://springdoc.org/)
- [Introcução ao JSON Web Tokens](https://jwt.io/)
- [Documentação biblioteca io.jsonwebtoken](https://github.com/jwtk/jjwt)