feat(planet): Add client-side rate limiting and caching for Planet API #5098
+1,374
−11
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.
This PR introduces client-side rate limiting and caching for Planet API calls to improve reliability, reduce server load, and enable offline access to previously viewed projects.
Closes #5096
Changes
New Files
planet/js/RequestManager.js- Handles rate limiting, request throttling, and retry logicplanet/js/CacheManager.js- IndexedDB-based caching for project metadata and dataplanet/js/__tests__/RequestManager.test.js- Unit tests (15 tests)planet/js/__tests__/CacheManager.test.js- Unit tests (17 tests)Modified Files
planet/js/ServerInterface.js- Integrated rate limiting and cachingplanet/index.html- Added script tags for new modulesFeatures
Rate Limiting & Throttling
Retry Logic with Exponential Backoff
IndexedDB Caching
Statistics & Monitoring
getStats()method for debuggingTesting
Backward Compatibility
The existing API remains fully backward compatible. No changes required for existing code.