/api-gateway-service

API Gateway Service with Spring Cloud Gateway, Spring Boot 3, Java 21

Primary LanguageJava

Table of Contents

  1. Summary
  2. Getting Started
  3. Contributing
  4. Contact
  5. References

Summary

api-gateway-service project established by combination of the following services and features.

Services

 * api-gateway
 * payment-service
 * student-service
 * swagger-application
 * openai-service

Features

 * Spring Cloud Gateway
 * SpringDoc Swagger
 * Event Driven Architecture with RabbitMQ
 * micrometer-tracing dependencies to track the logs
 * Postman collection to test by using Postman
 * Keycloak integration is completed under the payment-service
 * Feign Client secure call with Keycloak integration is completed under the student-service
 * MDC was added to improve logging between microservices
 * Google reCAPTCHA was added to secure endpoint calls
 * HCaptcha repo migration is completed under the student-service
 * openai-service repo migration is completed

Getting Started

To get a local copy up and running please follow these simple steps.

Prerequisites

Followings should be installed and links for how to install them.

Installation

  1. Clone the repo

     git clone https://github.com/musabbozkurt/api-gateway-service.git
  2. Run Spring Boot applications

    1. mvn clean install or mvn clean package
    2. mvn spring-boot:run
  3. Additional information to access endpoints, swagger and actuator

  4. How to run in Docker

     1 - Open Docker Quickstart Terminal
     2 - Go to the project directory from Docker Quickstart Terminal
     3 - Create Docker image by typing the following command -> docker build -t api-gateway-service-project.jar
     4 - Type the following command to make sure docker image has been created -> docker image ls
     5 - Type the following command to run docker image -> docker run -p 9090:8080 api-gateway-service-project.jar

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/amazing-feature)
  3. Commit your Changes (git commit -m 'Add some amazing features')
  4. Push to the Branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Contact

References