ruby-on-rails - 如何在 Rails 的 rswag/swagger 请求规范中指定 DECIMAL 和 DATE 格式?
问题描述
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 文档没有给出如何指定类型的列表 - 有什么想法吗?
解决方案
您正在寻找的是 swagger/openapi 的一部分。检查数据类型文档;数据类型数量有限。
你想要更接近这个的东西:
date: { type: :string, format: :datetime }
awarded: { type: :string, format: :decimal }
注意:十进制不是“真正的”格式,但格式是一个开放值,因此您可以使用您正在使用的工具支持的任何内容。您可以将format
注释与pattern
匹配项一起使用,以确保它是小数。
推荐阅读
- python - 如何使用烧瓶登录处理角色
- google-cloud-firestore - 2FA 的 Firestore 安全规则
- gitahead - GitAhead - 你能在提交时添加一个“修改”复选框吗?
- javascript - 在 Signalr Core 中调用 Ajax 函数
- swift - 如何在 Swift 字典中找到前 3 个最大值?
- reactjs - Google Firebase Auth 在 Netlify 上失败,但在本地服务器上工作
- c++ - 为什么我的应用在 sudo 模式下更加丰富多彩?
- android - Android MLKit 仅在屏幕中心扫描二维码
- android - 我正在提供 Drawable 类对象,但参数给出错误消息,“必需类型 int 提供 Drawable”
- angular - 在 mat-autocomplete 上选择一个值会清除该值,然后显示完整列表?