Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/edsonwade/spring-rest-api-project-2023

This project combines the power of Spring Boot with modern technologies to build robust, secure, and highly performant RESTful APIs. Explore our implementations to learn about database management, authentication, Dockerization, CI/CD, testing, and more.
https://github.com/edsonwade/spring-rest-api-project-2023

docker-compose flyway-migrations github-actions grafana hateoas integration-testing java jpa-hibernate junit5 maven mysql openapi pipelines prometheus rest-api spring-boot spring-security-jwt swagger testcontainers

Last synced: 4 days ago
JSON representation

This project combines the power of Spring Boot with modern technologies to build robust, secure, and highly performant RESTful APIs. Explore our implementations to learn about database management, authentication, Dockerization, CI/CD, testing, and more.

Awesome Lists containing this project

README

        

# RestfulAPIs-With-Spring-Boot-2023

Welcome to the RestfulAPIs-With-Spring-Boot-2023 project! This repository serves as a comprehensive guide and implementation of Spring Boot from scratch in 2022.

## Description

This project combines the power of Spring Boot with modern technologies to build robust, secure, and highly performant RESTful APIs. Explore our implementations to learn about database management, authentication, Dockerization, CI/CD, testing, and more.

## Technologies

We leverage several cutting-edge technologies to build this project:

- ![Java](https://img.shields.io/badge/Java-ED8B00?style=for-the-badge&logo=java&logoColor=white) - The backbone of our application.
- ![Spring](https://img.shields.io/badge/Spring-6DB33F?style=for-the-badge&logo=spring&logoColor=white) - Empowering our application with Spring Boot.
- ![MySQL](https://img.shields.io/badge/MySQL-00000F?style=for-the-badge&logo=mysql&logoColor=white) - Our relational database choice.
- ![MongoDB](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white) - Our NoSQL database choice.

## Implementations

We've integrated various features and technologies into our project for a robust and modern application:

1. **Flyway Migration**: Seamlessly manage database migrations.
2. **Content Negotiation**: Support different data formats for APIs.
3. **Hateoas**: Implement Hypermedia as the engine of Application State.
4. **Swagger (OpenAPI)**: Generate interactive API documentation.
5. **CORS (Cross-Origin Resource Sharing)**: Handle cross-origin requests.
6. **Spring Security with JWT Authentication**: Secure your application with JWT-based authentication.
7. **Docker, Prometheus, Grafana**: Containerize, monitor, and visualize your application.
8. **Pipeline CI/CD on AWS with GitHub Actions**: Automate your deployment process.
9. **Rest Assured**: Perform API tests, integration tests, functional tests with Cucumber, and test with Testcontainers using JUnit 5.

### Documentation and Resources

- [Swagger Documentation](http://localhost:8080/swagger-ui/index.html) - Interactive API documentation.
- [Documenting a Spring REST API following the OpenAPI specification](https://lankydan.dev/documenting-a-spring-rest-api-following-the-openapi-specification)
- [Integration Testing with Testcontainers](https://www.testcontainers.org/) - More information on testing with Docker.
- [Rest Assured](https://www.rest-assured.io) - Learn more about API testing.

## Contributing
- [Vanilson Muhongo](https://www.github.com/edsonwade)

## License

This project is licensed under the [MIT License](LICENSE). You are free to use, modify, and distribute this software as per the terms of the license.

If you have any questions or need assistance, don't hesitate to reach out. Happy coding!