fix: remove trailing / from nested paths#150
Conversation
|
This is called URL normalization. It's better to have a |
dd4d3c8 to
1687948
Compare
|
Cool to see that you took over maintainer duties for this crate. Thank you. I pushed a new variant of this fix, this time basing it directly on the function that Axum uses for the same route calculation. See this function in I don't think this is necessarily standard URL normalization: We don't want to remove trailing slashes everywhere, just in this one specific instance. Thanks to your comment, I did find a flaw with my previous implementation and I reflected that realization in an extended test:
I also removed the previous test that uses |
jplatte
left a comment
There was a problem hiding this comment.
A test showing that nesting under /app/ works as expected would be nice, but the implementation looks solid already. 👍🏼
Hi!
This PR attempts to fix #134.
Currently, API documentation for nested routes is built by combining the path of the base route (with trailing slashes removed) with the path of the nested route.
If a path of a nested route is only "/", as seen in the todo list example, this leads to that path now containing a trailing slash:
Generates this path:
This PR fixes this issue by removing any trailing slahes after the nested path is built in the
nestandnest_api_servicefunctions.One edge case needs to be handled. In a construct like the following:
the path of this route would be empty. A route of just
/is therefore returned unmodified.I've also added a basic unit test.
This seems to be a simple fix, I hope I didn't miss any other cases here.