使用Python使不稳定的API变得可靠
作者:Cédric Blom,Sales Spirit
介绍
Sales Spirit是几家出版商网站背后的公司,例如Prijsvergelijken.nl:荷兰最大的电信比较网站。对我们的成功至关重要的是我们网站上拥有完整无缺的产品供应。为了实现这一目标,我们与许多商业伙伴紧密合作。维护来自商业伙伴的不同和变化的产品供应是一个持续的挑战。
使用合作伙伴API自动化维护是我们在Sales Spirit工作中的一个重要方面。这些API在可靠性、性能、协议和语言、完整性等方面差异很大。与此同时,我们希望为客户提供可靠、性能良好且完整的网站。直到我们将Python纳入我们的工作流程之前,我们才完全准备好应对这一挑战。Python帮助我们构建了一个API平台,不仅输出质量高,而且非常易于阅读和维护。
使用Python构建API平台
我们在Sales Spirit开发了一个定制的API平台,以处理我们的商业伙伴提供的API。该平台有许多用例,其中一个用例是我们的邮政编码检查。客户可以在我们的宽带比较页面上填写他们的邮政编码和房屋号码,以检查他们家庭地址的宽带可用性。在幕后,我们使用他们的API检查几个宽带提供商的宽带可用性。在这个特定的用例中,性能和可靠性非常重要,因为我们正在处理一个实时服务。API本身并不总是提供这些。
我们通过以主-从配置组织API平台来确保性能和可靠性。工作线程并发运行,每个处理一个API调用。这些工作线程也被沙盒化,这样如果工作线程发生任何事情,API平台仍然保持稳定。沙盒化工作线程的另一个优点是它们可以轻松地被终止。因此,我们可以将工作线程设置为时间限制,这有助于确保我们的平台能够在一定的时间跨度内交付。主-从配置是使用Python线程实现的。与其他线程解决方案相比,Python线程非常易于使用。由于全局解