api - 如何在 Rails API 中集成批量请求?

标签 api rest ruby-on-rails-4 batch-processing bulk

我正在使用 Rails 4 构建 API,我真的想创建一个批处理请求方法,以便在执行一堆 ajax 请求时不会使我的应用程序过载。

Railscasts 以一种简单的方式展示了如何做到这一点,但缺少很多东西。

我也尝试了 batch_api gem,但我没有成功地将它与我的应用程序集成。

有任何想法吗?

最佳答案

我知道现在回答这个问题已经晚了,但我最近在我的 Rails API(rails 5.0.0 和 Ruby 2.0)中使用了 batch_api gem,它对我有用。

您需要做的是按照本文档的说明进行操作:
https://github.com/arsduo/batch_api

不久:

1- 您需要将 batch_api gem 添加到您的应用程序 GemFile。

2- 您需要在 application.rb 文件中添加所需的中间件配置:

config.middleware.use BatchApi::RackMiddleware do |batch_config|
  # you can set various configuration options:
  batch_config.verb = :put # default :post
  batch_config.endpoint = "/batchapi" # default /batch
  batch_config.limit = 100 # how many operations max per request, default 50

  # default middleware stack run for each batch request
   batch_config.batch_middleware = Proc.new { }
  # default middleware stack run for each individual operation
  batch_config.operation_middleware = Proc.new { }
end

3-然后重新启动您的rails服务器。

确保在适当的位置插入新的中间件,在我的情况下,我需要将它包含在“ActionDispatch::RequestId”中间件之前。
config.middleware.insert_before "ActionDispatch::RequestId", BatchApi::RackMiddleware

因为我想在 Batch 请求的每个请求中包含 X-Request-ID header ,并且这个 ID 将在每个响应中返回,以便我可以知道 Batch 中每个请求的响应(注意,响应将根据在批处理中的每个请求的序列上)。

关于api - 如何在 Rails API 中集成批量请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23303324/

相关文章:

Excel 到 ElasticSearch API 请求

ruby-on-rails - 在 Rails 3 中设计一个现代平台

api - GeneXus有调用外部程序API的功能吗?

java - 如何在 JAVA 中进行 REST Web 服务调用?

java - 泽西编码成员名单问题

ruby - 使用 SimpleForm 上传 CarrierWave;为什么 "remote_image_url"和 "image"保存到同一数据库列?

css - "bootstrap-theme.css.map */": expected selector or at-rule, 之后无效的 CSS 是 "..."

vb.net - 如何向WebApi传递多个属性?

api - 将 oAuth 2.0 客户端凭据和资源所有者密码凭据授予 API 类型相结合?

jquery - Rails dataTable Bootstrap 样式不起作用