Do not expand undefined URI template variables. #161
Merged
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.
Hello 👋! I am really excited to have found that the league has an implementation of [RFC 6570 - URI Template](https://tools.ietf.org/html/rfc6570#section-3.2.1, especially since the Guzzle implementation will be removed. However, when I changed from Guzzle's implementation to this one, I think I found a slight bug/incompatibility.
RFC6570 states that:
Therefore, if I wrote the following:
I would expect the expanded URI to be:
... given that the variable
undef
is not defined in my parameter array.However, what I actually see is that the URI is expanded to:
For comparison, this online URI template tester gives my expected results: https://spooky.github.io/uri-template-tester/
You can try it with:
http://example.org/test{?x,y,undef}
You should get
http://example.org/test?x=foo&y=42
as shown below.