代码之家  ›  专栏  ›  技术社区  ›  Andy Fenton

API-网站通信。我应该复制逻辑吗?

  •  1
  • Andy Fenton  · 技术社区  · 7 年前

    我一直在寻找这个问题的答案,但对我来说提出这个问题本身有点困难。因此,如果下面的问题已经有了很好的答案,我将非常感谢链接。

    假设我有一个电子商务网站和一个API端点,用于将来移动应用程序的调用。我的问题是:我应该复制逻辑来查询网站上的产品页面,或者我应该将网站视为API客户机,并通过创建CURL来显示产品信息?请求API。

    我想我应该坚持最后一个。但我担心在脚本中发出额外的curl(TCP/IP)请求。整体响应时间是否会明显较慢?还有其他我不知道的“模式”吗?非常感谢。

    网站位于同一服务器上,但API使用Phalcon PHP,网站使用常规PHP

    1 回复  |  直到 7 年前
        1
  •  1
  •   tereÅ¡ko    7 年前

    复制绝对是错误的。

    从技术上讲,您有三种选择:

    • 将共享的业务逻辑移动到一个单独的存储库中,并在两个项目中将其作为私有composer包重用
    • 使用cURL/socket包装库访问API(可能使用 Guzzle )
    • fetch )

    共享库将具有最佳性能,但它会使部署过程复杂化,并且在某些情况下,这些应用程序(站点和api)将具有相互矛盾的需求。问题是组织性的。

    通过HTTP在内部调用API服务器将使站点的响应性大大降低(因为TTFB将更长),但这将使API代码完全保持不变。

    将其全部公开会带来安全和授权问题。但是,这可能被视为未来的投资,这取决于您对移动API客户端的预期。但这将需要大量的开发时间和熟练使用javascript(甚至可能是JS框架)的人,因为您的网站将不得不进行重大修改。发展最密集的选择。