You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Representing an array in query parameter is tricky and there is no single true way, but I think at least one of the often-used approaches should be supported.
Current behavior is:
julia>using URIs
julia>queryparams("foo=bar,qux")
Dict{String,String} with 1 entry:"foo"=>"bar,qux"
julia>queryparams("foo[]=bar&foo[]=qux")
Dict{String,String} with 1 entry:"foo[]"=>"qux"
julia>queryparams("foo=bar&foo=qux")
Dict{String,String} with 1 entry:"foo"=>"qux"
julia>queryparams("foo%5B%5D=bar&foo%5B%5D=qux")
Dict{String,String} with 1 entry:"foo[]"=>"qux"
I would expect all of them, or at least the ones with repeated foo to return an array instead of string with single value.
It would make the type-stability more complicated, because now it's Dict{String,String}, so accommodating arrays there would mean changing it probably to Dict{String,Union{Vector},String}}?
I'm not sure how the proper solution should look like, but we should not definitely lose parameters as the current behavior does.
The text was updated successfully, but these errors were encountered:
This issue has just bit me while using Oxygen.jl. Any progress on this?
If anyone is coming here looking for a hacky solution, I used this workaround
functionqueryparamdict(req::HTTP.Request)
d =Dict{String,Any}()
params =queryparampairs(URI(req.target))
for (key,value) in params
if key ∈keys(d)
d[key] = [d[key]; value]
else
d[key] = value
endendreturn d
end
Representing an array in query parameter is tricky and there is no single true way, but I think at least one of the often-used approaches should be supported.
Current behavior is:
I would expect all of them, or at least the ones with repeated
foo
to return an array instead of string with single value.It would make the type-stability more complicated, because now it's
Dict{String,String}
, so accommodating arrays there would mean changing it probably toDict{String,Union{Vector},String}}
?I'm not sure how the proper solution should look like, but we should not definitely lose parameters as the current behavior does.
The text was updated successfully, but these errors were encountered: