我花了很多时间试图实现验证传入参数的能力是 rswag 规范,我的代码:
# incoming-parameter
params = {
login: 'www',
id: 15
}
# test rswag-spec
path '/controller/hello' do
post('Say Hello!') do
tags 'users'
consumes 'application/json'
produces 'application/json'
parameter name: :my_params, in: :body, schema: {
type: :object,
required: %i[id name],
properties: {
id: { type: :string },
name: { type: :string }
}
}
response(200, 'successful') do
# schema '$ref' => '#/components/schemas/UserRegistrationResponse'
describe 'new user with valid reg_params' do
let(:my_params) { params }
run_test! do |response|
data = JSON.parse(response.body)
puts "data = #{data}"
end
end
end
end
end
您期望传入的参数不会通过验证,因为id - 是一个integer,并且name字段不存在。但这并不重要,测试是成功的。
你能说我的代码有什么问题吗?为什么不对 rswag 文档中声明的传入参数进行验证?