`path_segments` should not include query or fragment with the final segment
lpil opened this issue ยท 4 comments
/one/two?three=four#five
Should return
["one", "two"]
@lpil I would love to take a crack at this one! I am wondering if this should be fixed in the gleam/http/request
module or in the stdlib's gleam/uri
module here?
Or would it be better to prevent the query and fragment from ever ending up in the request.path
at all? As in, handle this in the from_uri
function, which seems to be the only way to get a Request
type.
Hey @mrkutly ! Thanks for your help. I think we should avoid having the query in the path at all
Sounds good! @lpil Do you have steps to reproduce the case where you were seeing query strings show up in the Request path
?
Update: this appears to be handled by the erlang uri_string:parse
function here
I tried to recreate locally by making a quick webserver and making requests to:
localhost:3000/path/is/here?query=true#fragment
localhost:3000/path/is/here?query=true
localhost:3000/path/is/here#fragment
Doing request |> path_segments |> io.debug
always printed [<<"path">>,<<"is">>,<<"here">>]
as expected.
I thin this may have been a bug in the gleam_elli
library which was since fixed.
Looks like we are confident everything works here now so we can close this ticket. Thank you for your investigation ๐