{"id":27016137,"url":"https://github.com/andre-lucs/currency-conversion-microservice","last_synced_at":"2026-04-29T17:32:08.432Z","repository":{"id":283383108,"uuid":"951587041","full_name":"Andre-lucs/currency-conversion-microservice","owner":"Andre-lucs","description":"Project made folowing a Microservice course using the Spring framework","archived":false,"fork":false,"pushed_at":"2025-03-27T20:21:29.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T15:18:27.347Z","etag":null,"topics":["circuit-breaker","feign","gateway-api","jpa-hibernate","load-balancing","microservices","resilience4j","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Andre-lucs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-19T23:19:56.000Z","updated_at":"2025-03-27T20:21:33.000Z","dependencies_parsed_at":"2025-03-21T04:01:36.338Z","dependency_job_id":null,"html_url":"https://github.com/Andre-lucs/currency-conversion-microservice","commit_stats":null,"previous_names":["andre-lucs/currency-conversion-microservice"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Andre-lucs/currency-conversion-microservice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andre-lucs%2Fcurrency-conversion-microservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andre-lucs%2Fcurrency-conversion-microservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andre-lucs%2Fcurrency-conversion-microservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andre-lucs%2Fcurrency-conversion-microservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Andre-lucs","download_url":"https://codeload.github.com/Andre-lucs/currency-conversion-microservice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Andre-lucs%2Fcurrency-conversion-microservice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32436651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-29T17:26:39.753Z","status":"ssl_error","status_checked_at":"2026-04-29T17:25:53.857Z","response_time":110,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["circuit-breaker","feign","gateway-api","jpa-hibernate","load-balancing","microservices","resilience4j","spring-boot"],"created_at":"2025-04-04T15:18:30.015Z","updated_at":"2026-04-29T17:32:08.417Z","avatar_url":"https://github.com/Andre-lucs.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Currency Microservices Project\n\nThis repository contains a set of microservices for currency conversion and exchange, developed following good practices and based on a course. The project includes the following components:\n\n- **Currency Exchange Service**: Provides exchange rates between different currencies.\n- **Currency Conversion Service**: Converts amounts between different currencies using the exchange rates provided by the Currency Exchange Service.\n- **Naming Server**: Manages service discovery and registration.\n- **API Gateway**: Acts as a bridge between the end user and the microservices, routing requests to the appropriate service.\n\n## Project Structure\n\n- `naming-server`: Eureka Naming Server for service discovery.\n- `currency-exchange-service`: Service for providing currency exchange rates.\n- `currency-conversion-service`: Service for converting currency amounts.\n- `api-gateway`: API Gateway for routing requests to the appropriate microservice.\n\n## Prerequisites\n\n- Java 21\n- Maven\n- Spring Boot\n- Docker (optional, for containerization)\n\n## Getting Started\n\n### Running the Services\n\n1. **Build the project**:\n    ```sh\n    mvn clean install\n    ```\n\n2. **Start the Naming Server**:\n    ```sh\n    mvn -pl naming-server spring-boot:run\n    ```\n\n3. **Start the Currency Exchange Service**:\n    ```sh\n    mvn -pl currency-exchange-service spring-boot:run\n    ```\n\n4. **Start the Currency Conversion Service**:\n    ```sh\n    mvn -pl currency-conversion-service spring-boot:run\n    ```\n\n5. **Start the API Gateway**:\n    ```sh\n    mvn -pl api-gateway spring-boot:run\n    ```\n\n### Accessing the Services\n\n- **Currency Exchange Service**: `http://localhost:8000/currency-exchange/from/{from}/to/{to}`\n- **Currency Conversion Service**: `http://localhost:8100/currency-conversion/from/{from}/to/{to}/quantity/{quantity}`\n- **API Gateway**: `http://localhost:8765/{service-name}/{endpoint}`\n\n### Example Requests\n\n- **Get Exchange Rate**:\n    ```sh\n    curl http://localhost:8000/currency-exchange/from/USD/to/INR\n    ```\n\n- **Convert Currency**:\n    ```sh\n    curl http://localhost:8100/currency-conversion/from/USD/to/INR/quantity/100\n    ```\n\n- **Access via API Gateway**:\n    ```sh\n    curl http://localhost:8765/currency-exchange/from/USD/to/INR\n    curl http://localhost:8765/currency-conversion/from/USD/to/INR/quantity/100\n    ```\n- **Access via API Gateway with shorter paths**:\n    ```sh\n    curl http://localhost:8765/exchange/from/USD/to/INR\n    curl http://localhost:8765/conversion/from/USD/to/INR/quantity/100\n    ```\n\n## Technologies Used\n\n- Java\n- Spring Boot\n- Spring Cloud (Eureka, Gateway)\n- Resilience4j (Circuit Breaker, Rate Limiter)\n- Maven\n\n## Acknowledgments\n\nThis project was developed following a course on microservices architecture and best practices.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandre-lucs%2Fcurrency-conversion-microservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandre-lucs%2Fcurrency-conversion-microservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandre-lucs%2Fcurrency-conversion-microservice/lists"}