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,那么这些库应该适合您。
所以回答你的问题...
- 您不需要写入数据库或使用 ActiveRecord 来存储会话数据。 Rails 默认使用 Cookie。
- 您可以根据需要在 Rails 应用程序中使用多少 JavaScript - 这在很大程度上取决于您希望应用程序执行的操作。
希望这对您有所帮助。
序言
我最近决定开始学习 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,那么这些库应该适合您。
所以回答你的问题...
- 您不需要写入数据库或使用 ActiveRecord 来存储会话数据。 Rails 默认使用 Cookie。
- 您可以根据需要在 Rails 应用程序中使用多少 JavaScript - 这在很大程度上取决于您希望应用程序执行的操作。
希望这对您有所帮助。