在我们常见的应用中,往往有大量的API类型服务于各种数据交换,以及各种常见的API架构和协议。下面,我将从集成的角度与大家探讨一下,在准备多个服务相互集成时,使用不同类型、不同架构、不同协议的API意味着什么?我们可以使用哪些工具,需要注意什么?API类型和集成复杂性通常,我们有四种常见的API类型:公共、私有、合作伙伴和复合。其中:公共API公共API有时也称为开放或外部API。顾名思义,任何人都可以以开放的方式使用它,没有或相对较少的限制。此类API通常是第三方与公司开发的网络应用程序进行通信的一种方式。为大多数SMB服务的一些常见公共API有:PandaDoc、BigCommerce、DocuSign、NetSuite等。如何与公共API集成与公共API集成相对容易。不同的公司会为你提供必要的API文档,其中描述了各种端点的使用和调用方法、其API的认证和授权等。事实上,大多数企业集成平台都是围绕公共API的概念构建的。它们提供的所谓集成连接器,本质上是各个Web应用的API抽象层。但是,它们的工作方式的复杂性和范围取决于API的设计和文档。一般来说,有两种与公共API集成相关的主要策略:要么使用像iPaaS这样的第三方软件,要么开发自己的软件。当您选择后者时,请准备好为数据映射设计的相应策略。虽然许多应用程序在前端使用相同的模式来命名公共字段,但这些字段在后端可能具有截然不同的标签。适当的策略应确保可追溯性、准确性和较快的项目实施,并避免一些容易避免的错误。值得一提的是,如果您正在为您的项目寻找一些可公开访问的API,GitHub有一个相当详尽的公共API列表。它包括天气预报等Web应用程序所需的完整API密钥和OAuth授权。私有API与公共API相反,后者仅供单个公司使用。企业开发人员经常使用它们在Web应用程序之间实现某种程度的数据交换,提供对企业数据库和其他内部共享服务的访问,与其他内部API通信,或为公司员工构建内部应用程序。事实上,越来越多的公司认识到使用自己的API的价值。因此,他们可以节省更多时间和资源,提高应用程序的敏捷性和灵活性,并帮助降低总体运营成本。如何与私有API集成由于私有API通常驻留在高度安全的环境中,因此与它们集成需要通过非常严格的防火墙或VPN服务来发起调用(当然,首先需要能够允许外部访问)。这意味着如果你想知道我们的集成中间件是否真的有用,你应该检查它是否有某种安全机制/层来访问本地系统和Web应用程序。还值得注意的是,某些对公共API的成功至关重要的方面在私有API中可能显得无关紧要。例如,安全机制在私有API中并不重要,因为它们被假定为受到公司现有安全策略的保护。此外,由于开发人员经常在文档中使用内部或技术名称,因此设计中不一定包含版本控制。无论您是要手动编码、集成中间件、新团队成员还是其他部门,在集成私有API时都会遇到挑战。因此,如果您负责设计私有API,我建议您像设计公共API一样准备API最佳实践和检查。合作伙伴API合作伙伴API属于内部API类别,但这些API通常在业务合作伙伴和B2B客户之间共享,而不是在组织内部使用。此类API的一个常见用例是在供应链集成或销售点集成中连接两个内部业务软件应用程序。在这种情况下,API通常充当经典EDI(电子数据交换)集成的替代方案。合作伙伴API通常具有更强的授权、身份验证和安全功能。他们可以允许外部各方访问某些敏感数据。例如,合作伙伴CRM或ERP应用的客户数据,或医疗机构的患者医疗数据。如何与合作伙伴API集成由于合作伙伴API不是公开可用的,您可能无法找到允许即时“连接”的集成。如果您要集成此类合作伙伴API,则需要提供良好的手工编码,或者寻求支持自助服务和自定义连接器的集成中间件的帮助。有时您可能需要将合作伙伴API与基于EDI的Web应用程序连接起来,然后您需要将各种数据格式(例如从EDIFACT转换为JSON)。当然,一个好的企业集成平台往往可以支持这样的功能。此外,您还可以使用各种专用解析器,例如:UN/EDIFACT文档的Javascript流解析器。CompositeAPI我个人认为compositeAPI的使用场景是最广泛的。例如,在购物车中创建订单时,需要对多个端点进行多次API调用,包括:创建新客户、创建新订单、向订单添加新产品、展示分类产品等。复合API通常可以在一次调用中完成所有这些工作。这无疑加快了多任务处理的能力和效率。例如,这里是Salesforce的CompositeRESTAPI的属性文件:{"compositeRequest":[{"method":"POST","url":"/services/data/v52.0/sobjects/Account","referenceId":"refAccount","body":{"Name":"示例账户"}},{"method":"POST","url":"/services/data/v52.0/sobjects/Contact","referenceId":"refContact","body":{"LastName":"SampleContact","AccountId":"@{refAccount.id}"}}]}在上面的文件中,它的API立刻在一个sexcall,最多可以有25个所谓的子请求。复合API的另一个有用用例是从多个服务中提取信息以完成微服务架构模式中的单个任务。不过,复合API不一定需要创建全新的API。在许多情况下,您可以通过将多个调用或请求包装在一个序列中来扩充现有API的设计。如何与复合API集成在集成方面,复合API与常规公共API没有太大区别。事实上,如果您的集成平台解决方案已经具有用于REST或SOAP的通用连接器,您可以轻松地使用它来连接到复合API。与不同的API架构和协议集成接下来,让我们简要讨论一下在使用具有不同架构和/或协议的API时如何定义可接受的数据类型和命令。当然,大多数时候,您可能会使用REST和SOAP等API。其中REST是一种架构风格,而SOAP是一种协议。它们有许多相似之处,并且可以通过HTTP和XML进行通信,因此彼此之间的集成非常容易。当然,两者之间存在显着差异。例如,为了在服务器上公开Web应用程序业务逻辑的特定部分,SOAP使用服务接口,而REST使用URI。RESTAPI支持多种数据格式,包括:纯文本、XML、JSON和CSV,而SOAP仅支持XML。REST通常被认为比SOAP更轻量级且资源密集度更低。就两者的集成而言,我们需要在两个API之间进行某种“翻译”。当您选择手动集成这些API时,您可以使用Postman等工具来自动化此类操作。例如,您可以调用Web应用程序的SOAPAPI并将返回的XML解析为您需要的数据。然后,您可以将该XML转换为JSON等格式,并将该数据推送到另一个Web应用程序的RESTAPI。可见,当你的公司部署了一个集成的API,可以默认处理REST和基于SOAP的Web应用程序和服务之间的数据转换,这将使你的工作更加轻松,应用程序的效率将大大提高。译者介绍51CTO社区编辑JulianChen。他在实施IT项目方面拥有超过十年的经验。善于控制内外部资源和风险。专注传播网络与信息安全知识与经验;翻译等形式分享前沿技术和新知识;经常在线上和线下开展信息安全培训和讲座。原标题:AGuidetoAPITypesandIntegrationSpecifics,作者:OlgaAnnenko
