Rails - MVC - 我应该将外部API调用移动到模型吗?

时间:2013-09-20 14:40:00

标签: ruby-on-rails api rails-models

我对rails和MVC开发非常陌生,并且一直致力于开发一个可以进行外部API调用的应用程序。

我在视图中放置以下内容以生成一个shorturl,然后我将其用于fb和twit。

<% Bitly.use_api_version_3
  bitly = Bitly.client
  shareUrl = bitly.shorten("http://example.com/#{id}").short_url%>

既然我已经这样做了,我意识到每次看到这个页面时我都会打电话。我认为在模型视图中执行此操作比允许缓存它更有效。这是否有意义,我将如何在模型中执行此操作?

3 个答案:

答案 0 :(得分:0)

最好将API放在单独的模型文件中,通过控制器调用它们并将其传递给相应的视图。这样做可以控制控制器中的API调用。

答案 1 :(得分:0)

我更愿意将这些内容放入一个负责处理不同外部API的服务中。

像往常一样,有一个RailsCast用于创建服务对象http://railscasts.com/episodes/398-service-objects

答案 2 :(得分:0)

我最终在模型

中执行以下操作
before_save :set_shareUrl 
def set_shareUrl 
 Bitly.use_api_version_3 
 bitly = Bitly.client 
 self.shareURL = bitly.shorten("http://example.com/#{id}").short_url 
end