fix: prevent truncation of last character in route paths #2041
+31
−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.
What kind of change does this PR introduce?
Bug fix
What is the current behavior?
The route parser truncates the last character of the relative path when capturing the trailing constant string (the part after the last parameter). For example, a pattern like /api/({id}) is currently parsed as /api/(1 (missing the closing parenthesis) because of an off-by-one error in the loop condition (index < relativePath.Length - 1).
Resolves #2032
What is the new behavior?
The parser now correctly captures the entire remaining string up to the very last character. The pattern /api/({id}) is now correctly parsed as /api/(1), preserving the closing parenthesis.
What might this PR break?
This change should be backward compatible and is not expected to break existing functionality. The only edge case would be if a consumer was intentionally adding a dummy character at the end of their routes to workaround this bug, which is unlikely.
Please check if the PR fulfills these requirements