Dar*_*wan 3 api-design backend
我是后端开发新手,正在开发一个拥有庞大用户群的项目(与 Uber Eats 非常相似)。我们的团队应该开发网络应用程序和移动应用程序(适用于 Android 和 IOS)。由于时间限制和预算,我们决定首先实施 PWA,然后考虑到客户满意度,我们还计划实施本机移动应用程序。
我想知道,在为这种应用程序系统创建后端时,是否值得分别实现两个 API 服务器用于身份验证和其他通用 API 调用,并且与将两者保留在一个 API 中相比,性能是否会有相当大的提高服务器?实现两个原生移动应用后会改变吗?
在这种情况下,性能不会有显着提高,相反使用两个 API 会使架构变得过于复杂,您应该始终以更简单的系统架构为目标。
与单个 API 相比,使用托管在同一 VPS 上的多个 API 会降低性能。使用多个 API 需要运行多个进程,最终会降低性能。
如果您进行水平扩展,您可能需要多个 API,但在这种情况下,您只是将其托管在单个 VPS 上,在水平扩展的情况下,您也宁愿使用像 nginx 这样的负载均衡器来将流量分配到多个服务器上。
YouTube、Google 和 GitHub 等大公司使用单一 API 处理所有事务 - GET 请求、POST 请求、身份验证等。
如果您想对每个服务进行不同的优化,建议对不同的服务使用多个 API。WhatsApp 是一家为不同服务使用多个 API 的科技巨头;它使用不同的 API 来处理文本消息和媒体消息流。WhatsApp 使用这种设计模式是因为它的短信在存储环境中非常小,而媒体通常需要更多存储空间。
WhatsApp 必须对两者应用不同的优化,并且必须设定优先级。您可能会问:“这也可以使用不同的端点来完成”,是的,可以,但这样做的原因有很多。
总之,除非您想在网络级别限制应用程序中的某些服务,否则使用多个 API 并不是一个好的做法。我希望我回答了您的疑问!