Grape Swagger 不显示示例参数

Grape Swagger does not show up Example param

我正在使用 grape-swagger gem 为 dredd 生成 swagger 文档。

我有这样的参数:

params do
  requires :id, type: Integer, documentation: { x: { example: 1 } }
end

Grape swagger 忽略 example param.
而不是这个:

{
  "in": "path",
  "name": "id",
  "type": "integer",
  "format": "int32",
  "required": true,
  "x-example": 1
}

我知道了:

{
  "in": "path",
  "name": "id",
  "type": "integer",
  "format": "int32",
  "required": true
}

如何发送示例 值以供测试?

我在 dredd 问题中找到 this。这解决了我的问题。 简而言之,解决方案如下所示:

module MyApp
  module AddExampleToBodyParam
    module ClassMethods
      private

      def document_description(settings)
        super
        @parsed_param[:example] = settings[:example] if settings[:example]
      end
    end

    def self.prepended(base)
      class << base
        prepend ClassMethods
      end
    end
  end
end

module GrapeSwagger
  module DocMethods
    class ParseParams
      prepend MyApp::AddExampleToBodyParam
    end
  end
end

现在,我可以通过以下方式将 example 值代理到参数主体:

expose :some, documentation: { example: 'test' }