微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 ruby​​ on rails 6 中使用 rswag 记录 API GET 请求

如何解决在 ruby​​ on rails 6 中使用 rswag 记录 API GET 请求

我正在处理一个团队项目,我们都是 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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?