葡萄-文件上传-参数声明
Grape - File Upload - Parameter declaration
我正在使用 Grape 编写我的第一个 API,我非常兴奋,听起来和感觉都很好。 运行 通过注释我找不到为文件声明参数的方法。
以下是正在进行的工作class,用于提供个人资料详细信息、更新个人资料详细信息和上传个人资料图片。我得到了这个 params do; end
块来定义必填字段,我也想为文件上传这样做。但是类型会是什么?
试图在网上找到一个示例,但我遇到的几个都没有使用它。可能是一个微不足道的愚蠢问题,但我发现很难找到它。
更新:它自己上传的文件使用载波和一个名为 ProfilePictureUploader
的上传器,但我怀疑是这种情况。
class AccountApi < Grape::API
resource :account do
desc 'View the current user profile'
get :profile do
present current_user, with: Presenters::UserPresenter
end
desc 'Update the current user profile'
params do
requires :email, type: String, desc: 'User email'
requires :first_name, type: String, desc: 'First name'
requires :last_name, type: String, desc: 'Last name'
requires :phone, type: String, desc: 'Phone number'
requires :school_id, type: Integer, desc: 'School ID'
end
put :profile do
end
desc 'Upload profile picture'
# params do
# requires :user, type: Hash do
# requires :profile_picture, type: <<??????>>, desc: 'User profile picture'
# end
# end
post :profile_picture do
profile_picture = params[:user][:profile_picture]
status = current_user.update(profile_picture: profile_picture)
{
status: status,
size: profile_picture[:tempfile].size,
}
end
end
end
在此先感谢您的支持。你在那里度过了愉快的一天。
我认为您要查找的类型是 Rack::Multipart::UploadedFile
或只是 File
:
params do
requires :user, type: Hash do
requires :profile_picture, type: Rack::Multipart::UploadedFile, desc: 'User profile picture'
end
end
这是一种 grape
支持的类型,如 here。
我正在使用 Grape 编写我的第一个 API,我非常兴奋,听起来和感觉都很好。 运行 通过注释我找不到为文件声明参数的方法。
以下是正在进行的工作class,用于提供个人资料详细信息、更新个人资料详细信息和上传个人资料图片。我得到了这个 params do; end
块来定义必填字段,我也想为文件上传这样做。但是类型会是什么?
试图在网上找到一个示例,但我遇到的几个都没有使用它。可能是一个微不足道的愚蠢问题,但我发现很难找到它。
更新:它自己上传的文件使用载波和一个名为 ProfilePictureUploader
的上传器,但我怀疑是这种情况。
class AccountApi < Grape::API
resource :account do
desc 'View the current user profile'
get :profile do
present current_user, with: Presenters::UserPresenter
end
desc 'Update the current user profile'
params do
requires :email, type: String, desc: 'User email'
requires :first_name, type: String, desc: 'First name'
requires :last_name, type: String, desc: 'Last name'
requires :phone, type: String, desc: 'Phone number'
requires :school_id, type: Integer, desc: 'School ID'
end
put :profile do
end
desc 'Upload profile picture'
# params do
# requires :user, type: Hash do
# requires :profile_picture, type: <<??????>>, desc: 'User profile picture'
# end
# end
post :profile_picture do
profile_picture = params[:user][:profile_picture]
status = current_user.update(profile_picture: profile_picture)
{
status: status,
size: profile_picture[:tempfile].size,
}
end
end
end
在此先感谢您的支持。你在那里度过了愉快的一天。
我认为您要查找的类型是 Rack::Multipart::UploadedFile
或只是 File
:
params do
requires :user, type: Hash do
requires :profile_picture, type: Rack::Multipart::UploadedFile, desc: 'User profile picture'
end
end
这是一种 grape
支持的类型,如 here。