Итак, у меня есть API, где одна из точек входа выглядит примерно так:
module SomeModule
module SomeOtherModule
class Users < SomeModule::SomeOtherModule::Base
helpers do
params :user do
requires :user, type: Hash do
requires :device_id, type: String, desc: "Device ID"
end
end
end
desc "Some description"
params do
use :user
end
put "/", route_name: :v1_put_user_path do
...
end
end
end
end
SomeModule::SomeOtherModule::Base наследуется от Grape::API
Мой клиент отправляет параметры в теле, которые выглядят так:
{"user[device_id]":"xyz"}
Поскольку это похоже на строку, я не могу их распознать. Поэтому верните:
{"error":"user is missing"}
Это означает, что на моем сервере я получаю:
{"user[device_id]"=>"00999877",
"route_info"=>
...
Когда я ожидаю увидеть:
{"user"=>{"device_id"=>"00999877"},
"route_info"=>
...
Любые идеи о том, как мне определить свои параметры?... или, может быть, кто-то наткнулся на эту проблему и может предложить какое-то решение