Rails 外部 API - 最佳实践

Rails external API - best practices

序言

我最近决定开始学习 Rails,这是在新发现对 Ruby 的迷恋之后发生的,我实际上只是在摸索。

我,作为大多数开发者(有经验的或其他)试图接手 rails,已经发现它对 COC(convention over configuration) 的依赖程度,话虽如此,我发现它越来越难以找到更具体的问题答案,我想我可能会问社区 :)

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

问题

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

**我仍然想使用 Rails 提供的所有内置功能。

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

也许在创建应用程序时禁用 Rails 活动记录,并手动为会话创建单个模型。


其他不属于这里的问题

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

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

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

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

显然有一个现有的 Gem(惊喜!惊喜!)启用 API 消费 rails 应用程序,并维护 activerecord 的结构。

Gem 被称为 activeresource,它有详细的文档,据我所知,它可以完成工作,而且非常好。

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

提供的

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

在构造模型以与 API 对话方面,ActiveResource is a good option although you may find it a bit finicky depending on the API you're consuming. Her 是另一种选择。

如果您使用的 API 是通过 JSON 进行通信的 REST API,那么这些库应该适合您。

所以回答你的问题...

  1. 您不需要写入数据库或使用 ActiveRecord 来存储会话数据。 Rails 默认使用 Cookie。
  2. 您可以根据需要在 Rails 应用程序中使用多少 JavaScript - 这在很大程度上取决于您希望应用程序执行的操作。

希望这对您有所帮助。