Feat/idr rate aggregator#226
Open
WahidinAlambiyah wants to merge 6 commits into
Open
Conversation
…in memory for caching API results, data load runner, service layer, controller and config yaml
… and latest rate,adding log and add logic throw exception if data null and also update github username inside application yaml
…fig; 2. feat: implement ApiException in Currency and Historical strategy for custom exception; 3. feat: change get data from in-memory-store to service layer in finance controller; 4. feat: implement test for data load runner, currency, historical and latest rate; 5. fix: improve error handling
…exception mapping and Normalize finance endpoint to always return array payloads
… completing test strategy
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Exchange Rate Service - IDR Rare Aggregator
📌 Overview
This project is a Spring Boot REST API that aggregates financial data from the Frankfurter Exchange Rate API. The application exposes a single polymorphic endpoint that serves multiple types of financial data related to Indonesian Rupiah (IDR).
The application is designed with production-ready practices, including:
Strategy Design Pattern
FactoryBean for WebClient configuration
Immutable in-memory data store
Startup data initialization
Robust error handling
Unit and integration testing