0

我有一个现有的 RoR Web 应用程序,它当前使用 Devise 进行身份验证。

我计划以一种或另一种方式为移动后端添加 API 功能。

您是否建议向 Web 应用程序添加 API 功能并使用 JWT,例如启用移动身份验证。或者,您是否有两个独立的应用程序,一个 Web 应用程序和一个 API,在 Heroku 上共享同一个 Postgres 实例?

我认为这两种方式都有利有弊,但在我看来,将其分成两个应用程序会比向 Web 应用程序添加 API 功能更重要。或许,从一个 API 重新开始并添加移动应用程序客户端和 Web 应用程序客户端功能是最有意义的。

4

1 回答 1

0

创建一个新的仅 API 的后端一开始可能会更容易,但是您必须将模型中的所有应用程序逻辑复制过来,并且让双方都保持最新状态会很痛苦。如果您命名新 API 以便所有调用都在 a/api_v1或类似名称下,则可以在同一个 rails 应用程序中执行此操作。是一篇文章,展示了如何拥有不同版本的 API。

用于身份验证的 JWT 是一种很好的方式,并且 Devise 可以通过添加像devise-jwt这样的 gem 来支持它们,因为添加路由并自己处理令牌的创建和更新是很多工作。

对于 API 本身,您可能需要考虑将JSON:APIjsonapi-rails gem 或GraphQLgraphql gem 一起使用。这样,当有人想要使用您的 API 时,他们可以为他们的框架使用一个适配器,该适配器可以与那种 API 对话,而不必担心它返回的结构。这两种 API 都有适配器,可与 Andrioid、IOS、Ember、React 和所有其他主要前端框架一起使用。

于 2018-07-14T01:04:23.950 回答