This repository has been archived by the owner on Apr 12, 2024. It is now read-only.
[WIP] feat($httpUrlBuilderFactory): introduce new service abstracting url building #11386
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.
Here you have my proposal for having configurable strategies for
$http
url building.This is a WIP, and tries to solve same problems than #11238 addresses, but with a different perspective, covering more use cases and adding more freedom.
Key points:
$httpUrlBuilderFactory
, that serves as foundation for making totally custom urls.Rationale:
URL Building and parameter serialization are complementary problems.
Serialization can be seen as converting objects to a set of
{key, value}
Strings, and URL Building is aggregating this set to create an encoded URL (?key=value
) With this separation, users can rehuse some of the parts: how to serialize (var arr = [1,2] => {arr[], 1}, {arr[],2}
) and how to build (encode, concat params with;
...)Having in mind keeping core small, and give full control to user for easy customization, only the current building URL is shipped, but the users can make whatever they want.
jquery
and other param serialization would be coded easily in userland.Examples
I'd this full core customization available in userland, and forget about crazy tests and interceptors to communicate with complex backends. WDYT?