我正在做一个团队项目,我们都是 rswag 的新手,我们使用 JWT 令牌作为身份验证,主要是基本的类似 crud 的控制器。我很难弄清楚 rswag,我应该记录什么,不记录什么,我们已经用 rspec 完成了测试文件。我有一个 /api/activities 端点,其中一个 GET 请求将返回一个带有一系列活动的 JSON 响应,我的问题是,我希望我的 rswag“试试看”选项返回我 5 个活动或其他东西,我有尝试为此使用 factoryBot 但无济于事(我已经在 rspec 文件中完成了此操作,我只是不知道如何正确与 rswag 交互,将创建命令放在哪里,是否在测试数据库中创建数据或在我的开发数据库中,它是否显示来自我的开发数据库或测试数据库的数据?)
无论如何,如果你们中的一些更有经验的人可以为我提供一个很好的指导,我会非常感激,并且还可以通过“试用”选项帮助我返回一系列活动。这就是我到目前为止所拥有的。
require 'swagger_helper'
RSpec.describe '../integration/api/activities', type: :request do
describe 'Activities' do
path '/api/activities' do
get 'Lists all activities' do
tags 'activities'
produces 'application/json'
let(:create_activities) { create_list(:activity, 10) }
response '200', 'lists activities' do
let(:id) { Activity.first.id }
schema type: :object,
properties: {
activities: {
type: :array,
items: {
properties: {
id: { type: :integer },
name: { type: :string },
content: { type: :string },
image: { type: :string }
},
required: %w[id name content]
}
}
}
run_test!
end
end
end
end
end
你建议我如何解决这个问题?你会怎么做?这里没有真正的“失败”场景,你要么得到一个充满活动的数组,要么得到一个空数组,这个端点不使用授权。我的控制器有一个基本的
@activities = Activity.all
render json: @activities
另外,这是我现在的 swagger_helper.rb。
require 'rails_helper'
RSpec.configure do |config|
config.swagger_root = Rails.root.join('swagger').to_s
config.swagger_docs = {
'v1/swagger.yaml' => {
openapi: '3.0.1',
info: {
title: 'API V1',
version: 'v1'
},
paths: {},
servers: [
{
url: 'http://localhost:3000',
variables: {
defaultHost: {
default: 'www.example.com'
}
}
}
]
}
}
config.swagger_format = :yaml
end