跳转到主要内容
Fugen Services logo

软件工程

让你的系统可靠地互联互通

大多数集成项目在失败场景中崩溃。演示可行,正常情况可行,但支付提供商在请求中间超时,或会计API在月末限流时,无人知晓订单是被创建了两次还是一次都未创建。正确处理这些情况才是真正的工作。

参考报价

集成起价 £4,500;完整 API 起价 £12,000

开发前以书面形式确定固定价格。

获取报价+44 7488 265083

此方案解决的问题

两种模式导致大部分集成问题。在Web请求中同步调用第三方API,让他们的糟糕一天变成你的宕机。以及缺乏幂等性,导致重试时创建重复订单、重复发票或重复扣款——手动对账的成本远超正确构建的成本。

您将获得的服务

先设计后构建

资源、动词、状态码、错误形态、分页和版本控制等,以OpenAPI规范提前达成一致。发布后的API变更成本高昂;文档变更则不然。

适配消费者的认证

OAuth 2.0用于第三方代表用户操作,服务器间通信使用签名密钥,移动客户端使用短期令牌与刷新机制。选择认证方式以匹配调用方,而非出于习惯。

幂等性与重试

写操作需接受幂等键,使重试请求无法创建第二条记录。出站调用使用指数退避与熔断器,让故障依赖降级而非级联。

可信的Webhook

签名负载、重放保护,以及带手动重新发送的交付日志。接收端应先验证再入队——切勿在请求中同步处理Webhook。

限流与配额

为每个消费者设置限制,并提供清晰的响应头与429状态码,避免单个客户端降低整体服务质量。这正是让API安全交付给合作伙伴的关键。

保持同步的文档

从规范生成并发布,附带真实请求与响应示例,避免手写文档常见的与实现脱节问题。

我们的工作方式

  1. 映射流程

    数据如何流动、方向、频率,以及某步骤失败时必须执行的操作。失败问题正是塑造设计的关键。

  2. 规范化

    在编写代码前,与API消费者共同审核OpenAPI文档。消费者能发现生产者无法察觉的设计问题。

  3. 按合约构建

    实现加合约测试,让破坏性变更在CI中失败,而非在合作伙伴的集成中。

  4. 强化边缘节点

    超时设置、重试机制、熔断器、死信队列与结构化日志。

  5. 沙盒测试与正式上线

    为消费者提供沙盒环境与测试凭证用于开发,随后进行分阶段生产发布。

  6. 监控

    按集成服务统计错误率、延迟与故障次数,在依赖服务出现故障时立即告警,而非等到故障发生后再处理。

您应当期待什么

  • 第三方服务中断仅影响单一功能,而非整个网站
  • 重试机制不会产生重复订单、发票或收费
  • 合作伙伴可直接通过文档集成,无需询问您的团队
  • 合约测试可捕获破坏性变更,而非由合作伙伴发现

构建于

  • Node.js
  • TypeScript
  • Laravel
  • PHP
  • Python
  • FastAPI
  • OpenAPI
  • GraphQL
  • REST
  • PostgreSQL
  • MySQL
  • Redis
  • RabbitMQ
  • Stripe
  • Xero
  • QuickBooks
  • Shopify
  • Twilio
  • SendGrid

Mainstream, well-supported technology — chosen so you can hire for it and so another team could take the project over.

API开发与集成 — your questions

包括那些大多数机构在页面上忽略的成本问题。

单次范围明确的集成(如一个支付提供商或 CRM 同步)通常需 £4,500 至 £9,000。面向外部消费者的完整 API(含认证、限流、沙盒及文档)起价为 £12,000。成本变量几乎总是取决于对方系统的表现。

大多数情况下使用 REST;当客户端确实需要跨相关数据自行组合查询时(通常是移动应用以减少往返次数),则使用 GraphQL。GraphQL 在缓存、限流和查询成本控制方面增加了真正的复杂性,因此需有明确需求而非仅出于偏好。

通常可以,但我们会明确说明权衡。可行方案包括:数据库级集成(若可访问)、定期文件交换,或作为最后手段的网页抓取——抓取可行但对方若修改标记即会失效。我们将抓取定价为持续维护而非一次性项目,因为它本身就是如此。

这在设计之初就已考虑。出站调用通过带重试和熔断器的队列运行,因此提供商故障仅导致延迟操作,而非失败请求或 500 页面。任何无法恢复的情况会进入死信队列并触发警报,确保不会静默丢弃。

会,文档从 OpenAPI 规范自动生成,因此不会过时,并附带可运行的示例和沙盒供测试。手写的 API 文档在两次发布后即过时,这也是我们不采用此方式的原因。

在 URL 路径中进行版本化,并配有书面的弃用政策——增量变更进入当前版本,破坏性变更启用新版本,旧版本在约定的窗口期内保持可用。消费者可据此规划,而非被动发现。

与亲自构建过此类系统的人交谈

A short call is usually enough to tell you whether this is the right service for your situation — including when it is not.