Я пишу свой первый API, используя Grape, и я очень взволнован, и это звучит и ощущается отлично. Просматривая заметки, я не смог найти способ объявить параметры для файла.
Ниже приведен незавершенный класс для предоставления сведений о профиле, обновления сведений о профиле и загрузки изображения профиля. Я получил этот блок params do; end
для определения обязательных полей и хотел бы сделать это и для загрузки файла. Но каким будет тип?
Пытался найти пример в Интернете, и те немногие, с которыми я столкнулся, не использовали его. Вероятно, тривиальный и глупый вопрос, но мне трудно его найти.
Обновление: для загрузки файла используется Carrier-wave и загрузчик под названием 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
Заранее спасибо за вашу поддержку. Удачного дня.