【问题标题】:Can I use one NextJs api for web and mobile apps?我可以将一个 NextJs api 用于 Web 和移动应用程序吗?
【发布时间】:2021-10-10 13:16:45
【问题描述】:

我想在 Nextjs 中创建 Web 应用程序,并在 React Native 中创建未来的移动应用程序。但我很困惑使用什么 api。你认为 Nextjs api 可以同时处理 web 和移动应用程序吗?这是可能的吗?这是个好主意吗?我应该为此使用 PHP 后端吗?非常感谢。

【问题讨论】:

    标签: react-native api web-applications next.js mobile-application


    【解决方案1】:

    假设您在谈论API Routes

    我想请您考虑一下您的网络和应用程序的规模。如果这是一个简单的 Web/应用程序,您不希望增长太多 - NextJS API 类似于建立 nodejs express 服务器不是一个坏选择。

    在设计此 API

    时请记住一些注意事项
    1. 可能必须区分请求来源(网络/应用)
    2. CORS 可能需要自定义 - 接下来会公开这一点
    3. 您可以设置特定于应用程序的路由以确保隔离,或者在您的应用程序将来分叉时使用标头来区分行为。

    即使您制作了 PHP、ExpresJS 或任何其他 API 中间件,也会有这些问题。

    一旦你过去了,我会要求你考虑

    1. 使用像 Apollo 这样的 GraphQL 服务器,它可以很好地与 Next 配合使用,并且是为此目的而定制的。..
    2. 评估 API 网关的安全性和规模。

    【讨论】:

    • 非常感谢 :) 我打算使用 GraphQL,但现在我真的不知道这个项目能增长多少。而且阿波罗似乎不错。
    • 缩放的要点。使用现代容器化方法,您可能只想扩展您的 API。
    • 我的问题很简单,关于身份验证和检查传入的移动应用程序请求是否经过身份验证? IE 可能是一些中间件检查请求标头中的访问或 id 令牌?这将如何最好地实施?
    • 正确,对于任何简单的用例,请使用 API 中间件本身并检查请求 - nextjs.org/docs/api-routes/api-middlewares。对于复杂的用例,请考虑 next-auth next-auth.js.org 或护照,这是一个成熟的解决方案 - 提出一个新问题并解释您的用例可能是个好主意
    【解决方案2】:

    您根本不使用任何外部工具。

    1. 下一个JS有serverless model。因此,您无需与 BE 混为一谈。
    2. 您可以创建许多您想要的 API 路由。在/pages/api 文件夹中。你甚至可以像/pages/api/desktop/pages/api/mobile 文件夹。
    3. 您通过/middleware/your_file.js 连接您的数据库(MongDB、sql 等)。这是MongoDB 的示例
    4. 如果您愿意,您甚至可以添加一些安全性(例如:Auth0、next-auth 等)来保护您在 /pages/api 文件夹中创建的 API 路由。 Auth0 的示例

    之后,您可以通过 API 调用访问您的数据。很好!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-20
      • 2019-10-14
      • 2019-06-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2021-07-09
      相关资源
      最近更新 更多