database - API与数据库交互的正确方式?

标签 database api web-services

我正在尝试托管一个数据库(在 AWS 或 Heroku 上)来存储来 self 的 Web 应用程序的数据。我还需要创建一个 API 来与数据库交互。基本上,就像这张来自 Google 的图片。

enter image description here 图片来源:https://dzone.com/articles/an-introduction-to-restful-apis

我想弄清楚:

API 和数据库通常是分开托管的吗?或者他们经常一起主持?我不确定 API 和 DB 是否是在一起的 1 个组件(子组件是 API 和 DB),或者它们是否是 2 个独立的独立组件。

如果它们是 1 个组件并且可以托管在一起,那么我相信您可以为您的 API 使用 Express.js 之类的东西,它可以查询数据库并响应来自网站的 HTTP 请求。

如果它们是 2 个单独托管的组件,我觉得这意味着我必须有 2 个 API,除非我的 API 可以直接与数据库通信(我不确定这是否正确)。因此,我需要我的 API 与某些服务器端技术(PHP、Java 等)对话,然后服务器端技术将查询数据库并将结果返回给 API。所以基本上我的 API 正在与一个与数据库对话的 API 进行对话。我不确定这是否使事情变得过于复杂,但看起来确实如此。

我试图澄清这个过程是如何运作的。

最佳答案

Is the API and database typically hosted separately? Or are they often hosted together?

由于 API 服务需要向数据库发出大量请求,因此您希望它们之间的网络延迟尽可能最小。

所以一般来说它们应该一起托管。这意味着什么取决于托管风格。如果您使用的是 AWS Lambda 之类的服务,那么使用相同的云服务是有意义的。否则,对数据库和 HTTP 服务使用同一台计算机,直到您扩展到需要将它们分开的程度。

If they are 1 component and they can be hosted together, then I believe you can use something like Express.js for your API which can query the database and respond to HTTP requests from the website.

这是一种常见的方法。

关于database - API与数据库交互的正确方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55099191/

相关文章:

api - 网络音频 API WaveShaperNode

web-services - 使用多个客户端测试 Node 应用程序

java - wsimport/xjc 命令行插件

xml - XSLT 输出冗长且困惑

php - 将视频从网站后端上传到YouTube

php - 从一台服务器到另一台服务器的数据库连接

php - 跟踪像素插入数据库时​​生成 500(内部服务器错误)

database - 如何从函数返回 ref var

php - 通过 php 更新 Facebook 状态

php - 使用提交表单更新数据库