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,但format是一个开放值,因此您可以使用所用工具支持的任何内容。您可以将format
注释与pattern
匹配一起使用,以确保它是十进制。