Improve HTTP Client Recording Performance and Reliability #36
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.
Summary
This PR improves the HTTP client's recording and playback system by switching from a single-file strategy to individual files per recording. This change eliminates performance bottlenecks, enables concurrent test recording, and provides better organization for test fixtures.
Why This Change Was Made
The previous single-file recording strategy (
recordings.json) had several critical issues:What Changed
Core Implementation
{method}_{host}_{path}_{hash}.jsonTest Improvements
test/fixtures/recordings/and committed to gitlocalhost:9876instead ofapi.example.comAPI Changes
User-facing
recorderAPI unchanged - this is backward compatible. Internalstoragemodule functions now require amatching_configparameter, but most users don't call these directly.Test Plan
Version
Bumped to 3.0.1 (non-breaking enhancement)