Rails外部API - 最佳实践

时间:2015-02-23 03:56:52

标签: api ruby-on-rails-4 activerecord conventions

序言

我最近决定选择Rails,这是在新发现的Ruby迷恋之后发生的,我实际上是在摸索表面。

我,正如大多数开发人员(经验丰富或其他人)试图获取铁路,已经发现它依赖COC(convention over configuration)的程度有多大,尽管如此,我发现越来越难找到更具体的答案如此问题我可能会问社区:)

即使在访问谷歌搜索结果的第二页之后。

问题

我正在构建一个严重依赖外部API的Web应用程序,我不太确定如何处理activerecord(因为我认为我不会使用它),但我确实需要使用会话。 在这种情况下,Rails最佳实践是什么?

**我仍然想使用Rails提供的所有内置功能。<​​/ p>

我想也许我应该创建模型来表示从Web服务中提取的数据,并从请求的数据中填充它们。

或者

在创建应用时可能会禁用Rails活动记录,并为会话手动创建单个模型。


其他不属于此的问题

假设我不需要activerecord在Rails中处理会话的最佳方法是什么?

在构建Rails应用程序时,我应该多久依赖一次JavaScript?

我非常感谢任何帮助,并且非常欢迎任何Getting-Into-Rails建议。

2 个答案:

答案 0 :(得分:1)

您可以选择使用ActiveRecord将会话数据存储在数据库中,但这当然不是必需的。默认情况下,Rails使用Cookie来存储会话数据。这由CookieStore提供。

因此,当用户登录到您的Rails应用程序时,您可以首先使用您的API验证其凭据,并且在成功时,将user_id(或令牌或您用于识别此用户的任何内容)存储在会话。在后续请求中,您可以使用会话中存储的值来标识用户。

在构建模型以与您的API进行对话方面,ActiveResource是一个不错的选择,尽管您可能会发现它有点挑剔,具体取决于您正在使用的API。 Her是另一种选择。

如果您使用的API是通过JSON进行通信的REST API,那么这些库应该可以正常工作。

所以回答你的问题......

  1. 您无需写入数据库或使用ActiveRecord存储会话数据。 Rails默认使用Cookies。
  2. 您可以在Rails应用程序中使用尽可能少的JavaScript - 这在很大程度上取决于您希望应用程序执行的操作。
  3. 希望这有帮助。

答案 1 :(得分:0)

经过大量阅读并询问Rails开发人员后,我开始为我的问题找到解决方案。

显然存在一个现有的Gem(惊喜!惊喜!),它可以使API消耗rails应用程序,并维护activerecord的结构。

Gem被称为activeresource,它有很好的文档记录,据我所知,它可以完成这项工作,而且相当不错。