2014-09-19 4 views

ответ

0

Вы можете использовать массив или хэш для описания

params do 
optional :preferences, type: Array do 
    requires :key 
    requires :value 
end 

requires :name, type: Hash do 
    requires :first_name 
    requires :last_name 
end 
end 

массива, когда необходимо сохранить объекты HAS_MANY. Хеш, когда вам нужно сохранить только объект.

Ex:

params do 
    requires :post, type: Hash do 
    requires :title 
    requires :description 
    optional :images_attributes, type: Array 
    end 
end 
1

Добавление описания для параметров легко (я предполагаю, что это то, что вы имеете в виду под «Как я могу описать это, используя виноградный чванство?»). Иван показывает вам, как создавать блоки params с помощью Hash или Array, но для описания их с помощью Grape Swagger вам нужно добавить параметр описания в требуемый или необязательный параметр в блоке params.

class API::Users < Grape::API 
    resource 'user' do 
    desc 'Create a new user' 
    params do 
     requires :user, type: Hash, desc: 'user object to create' do 
     requires :first_name, type: String, desc: 'First name of user' 
     requires :last_name, type: String, desc: 'Last name of user' 
     end 
    end 
    post do 
     # do work here 
    end 
    end 
end 

И убывание до конечной точки и ДЕСК ключи в хэш отправленного в requires будет подобран винограда Swagger и включены в автоматической документации.