首页 > 解决方案 > 设置 API 连接响应超时

问题描述

Rails 控制器操作有一个条件,当满足时,连接到 API

Class GuestController
  if @book.quantity - @book.guests.count == 0
     call_book_api

现在这个特定的调用应该有一个不同于其他调用的响应时间。需要针对call_book_api某些数据(无论是正面还是负面)的方法响应设置超时。

@result = HTTParty.post(
  'https://test.co.uk/interface/Book', 
  :body => JSON.parse(@book).to_json,
  headers: {
    'Content-Type' => 'application/json', 
    'Accept' => 'application/json',
    'Host' => 'test.co.uk',
    'Connection' => 'Keep-Alive'
  }
)    

如何在行动层面有效地定义这一点?

标签: ruby-on-railstimeout

解决方案


根据帖子中提到的描述,您希望在使用 httparty gem 调用第三方 API 时设置超时。

如果是获取请求,请使用下面提到的代码

 response = HTTParty.get('YOUR_URL', timeout: 10)

如果它是 post 类型的请求,则使用下面提到的代码:

 response = HTTParty.post('YOUR_URL', body: params, timeout: 10)

推荐阅读