ruby-on-rails - rswag gem:响应块中模式的主要目的是什么?
问题描述
describe 'Blogs API' do
path '/blogs' do
post 'Creates a blog' do
response 422, 'invalid request' do
**schema** '$ref' => '#/definitions/errors_object'
...
end
上面代码中的关键字模式对我们有什么好处?真实的反应与此相比吗?如果不匹配,引发错误?
解决方案
是的,rswag 将验证您的 API 响应是否与您在运行测试时指定的架构相匹配。它还将模式输出为生成的 swagger 文档中的“模型”。
在您给出的示例中,它将errors_object
在您的config.swagger_docs
. rswag 文档向您展示了如何定义它:
config.swagger_docs = {
'v1/swagger.json' => {
swagger: '2.0',
info: {
title: 'API V1'
},
definitions: {
errors_object: {
type: 'object',
properties: {
errors: { '$ref' => '#/definitions/errors_map' }
}
},
errors_map: {
type: 'object',
additionalProperties: {
type: 'array',
items: { type: 'string' }
}
}
}
}
}
推荐阅读
- python - 如何从 pandas DataFrame 列中提取美元金额
- excel - 在 64 位 Excel 中从 VBA 编写注册表
- c# - C# - 如何绘制具有 3 个变量的图表(Position[32]、ByteValue[255]、Frequency[int])
- python - python中的解析错误处理
- r - 匹配R中的“子向量”
- excel - 如何使用截止日期和任务进度来创建整体状态?
- spring - Dynamic execution of the methods of bean object
- logstash - Logstash 安装插件错误
- laravel - 如何使用laravel检查记录是否存在于数据库中?
- python - 为什么它不识别模块?(Python 3.7)