Grape Swagger描述了JSON的身体

时间:2014-09-19 11:17:47

标签: swagger grape grape-api

我正在为大多数POST请求发送JSON请求,并且我将JSON嵌入请求正文中。我怎么能用葡萄招摇来描述这个?

2 个答案:

答案 0 :(得分:1)

为params添加描述很容易(我认为这就是你的意思"我怎么能用葡萄招摇来描述这个?")。 Ivan向您展示了如何使用Hash或Array创建params块,但是要使用Grape Swagger描述它们,您需要在params块中为requires或optional添加description参数。

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

端点之前的desc和发送到requires的哈希中的desc键都将被Grape Swagger选中并包含在自动文档中。

答案 1 :(得分: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对象时的数组。 当你需要只保存一个对象时散列。

例如:

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