代码之家  ›  专栏  ›  技术社区  ›  Brian Wigginton

电子商务第三方API数据最佳实践

  •  2
  • Brian Wigginton  · 技术社区  · 15 年前

    以下情况下的最佳实践是什么?我有一家电子商务商店,它可以降低分销商的库存水平。每次用户加载产品详细信息页面时,该站点是否应使用第三方API获取最新数据?或者,站点是否应该使用第三方API,然后在自己的系统中存储一定时间的数据,并定期更新?

    在我看来,很明显,每次加载产品详细信息页面时都应该更新它,但是高流量的电子商务商店呢?对于这种情况,是否使用了完全不同的解决方案?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Michael Dillon    15 年前

    在这种情况下,我肯定会将分发服务器站点的结果缓存一段时间,而不是每次收到请求时都访问它们。但是,我不会简单地对所有缓存条目使用5分钟或30分钟的覆盖超时。相反,我会使用一些启发式方法。如果可能,例如,如果您的应用程序是用类似于python的语言编写的,那么您可以将一个简单的脚本附加到每个实现超时的产品上。

    这样,如果它是一个很少被请求的项目,或者是一个有大量库存的项目,您可以缓存更长的时间。

    if product.popularityrating > 8 or product.lastqtyinstock < 20:
       cache.expire(productnum)
    distributor.checkstock(productnum)
    

    这给了你灵活性,如果你需要的话可以打电话给你。最初,您可以将所有规则设置为:

     cache.expireover("3m",productnum)
     distributor.checkstock(productnum)
    

    实际上,脚本可能不包括checkstock函数调用,因为它将在主应用程序中,但在这里包含用于上下文。如果python看起来太重了,不能只包含这一小部分的灵活性,那么请看一下Tcl,它是专门为这类工作设计的。在C、C++、C语言和Java应用程序中都可以很容易地嵌入它们。

        2
  •  0
  •   user151323    15 年前

    实际上,还有另一个解决方案。您的分销商将产品目录保存在其服务器上,并通过 Open Catalog Interface . 当用户想要下订单时,他会被重新定向到经销商的目录中,选择商品,然后将所选商品转移回您的商店。

    广泛应用于供应商关系管理分公司。

        3
  •  0
  •   Eugene Osovetsky    15 年前

    这取决于许多因素:到您的站点的流量、库存级别更改的频率、显示过时数据的业务影响、供应商允许您在可用性和性能方面调用其API的频率、其API的SLA等等。

    一旦你有了这些答案,这里当然有很多可能。例如,对于一个低流量站点,获得库存权限很重要,您可能希望在每次调用时调用第三方API,但如果API在某个超时内没有响应,则恢复到某些可选行为(例如使用缓存数据)。

    有时,设计良好的API将包含有关数据有效期的提示。例如,一些RESToverHTTP API支持各种HTTP缓存控制头,这些头可用于指定有效期,或者仅在自上次请求后发生更改时检索数据。