【问题标题】:How do I specify DECIMAL and DATE formats in rswag/swagger request specs for Rails?如何在 Rails 的 rswag/swagger 请求规范中指定 DECIMAL 和 DATE 格式?
【发布时间】:2021-03-15 13:47:44
【问题描述】:
post('create user') do
  tags 'Jobs'
  consumes 'application/json'
  parameter name: :user, in: :body, schema: {
    type: :object,
    properties: {
      title: { type: :string },
      description: { type: :string },
      date: { type: :datetime  },
      budget: { type: :decimal },
      awarded: { type: :boolean }
    },
  required: [ 'title', 'description' ]
}
  response(201, 'created') do

    after do |example|
      example.metadata[:response][:content] = {
        'application/json' => {
          example: JSON.parse(response.body, symbolize_names: true)
        }
      }
    end
    let(:user) { { title: 'foo', description: 'bar' } }
    run_test!
  end
end

我已经按照上面的方式实现了我的请求,但是 Swagger UI 中的输出显示

Unknown type: datetime
Unknown type: decimal

Rails 的 rswag 文档没有给出如何指定类型的列表 - 有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails ruby rspec swagger swagger-ui


    【解决方案1】:

    您正在寻找的是 swagger/openapi 的一部分。查看data types 文档;数据类型的数量有限。

    你想要更接近这个的东西:

    date: { type: :string, format: :datetime }
    awarded: { type: :string, format: :decimal }
    

    注意:十进制不是“真正的”格式,但格式是一个开放值,因此您可以使用所用工具支持的任何内容。您可以使用 format 注释和 pattern 匹配来确保它是小数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多