1

我花了很多时间试图实现验证传入参数的能力是 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 文档中声明的传入参数进行验证?

4

0 回答 0