Allow overlapping catch-all and param segment #24
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.
Earlier this year, the RFC: Route Overlapping was introduced to enhance the routing flexibility of the router by allowing overlapping of wildcard segments with static segments. The current rules, as outlined in the RFC, are as follows:
Rules
For example, the following route configurations are allowed:
Proposition
While supporting overlapping named parameters, such as
/users/{id}/book
and/users/{name}
, presents challenges, this new RFC aims to introduce the capability to overlap catch-all and named parameter segments (overlapping named parameters within the same segment remains prohibited at this stage).As a result, the following route configurations would be allowed:
New Rules
Priority example
Pattern
/users/123/email
Pattern
/users/123/revoke
Pattern
/users/123/orders/5
Performance comparaison
The impact on performance is expected to be null for static route and minimal for wildcard route.