API类型和集成规范指南

news2024/12/24 11:06:51

在我们的常见应用中,往往包含着大量服务于各种数据交换的API类型、以及各种常见的API架构与协议。下面,我将从集成的角度和您讨论,在准备将多个服务相互集成时,使用不同类型、架构和协议的API意味着什么?我们可以使用哪些工具,又应该注意什么呢?

API的类型和集成的复杂性

通常,我们有四种常见的API类型:公共、私有、伙伴和复合。其中:

公共API

公共API有时也被称为开放或外部API。顾名思义,任何人都可以公开的方式,在没有限制、或限制相对较少的情况下使用它。此类API通常是方便第三方与本公司开发的Web应用进行通信的一种方式。一些常见的、为大多数中小企业提供服务的公共API有:PandaDoc、BigCommerce、DocuSign、NetSuite等等。

如何与公共API集成

与公共API集成相对比较容易。不同的公司都会为您提供必要的API文档,其中描述了各种端点、验证与授权其API的使用和调用方法等。事实上,大多数企业的集成平台都是围绕着公共API的概念来构建的。他们提供的所谓集成连接器,在本质上都是各个Web应用的API抽象层。不过,它们在工作机制上的复杂性和范围,则取决于API的设计与文档说明。

总的来说,与公共API集成相关的主要策略有两种:要么像iPaaS那样使用第三方软件;要么自行开发。在您选择后者时,请准备好为数据映射(Data Mapping)而设计的相应策略。虽然许多应用程序会使用相同的模式,来命名前端的公共字段,但这些字段在后端可能有着截然不同的标签。适当的策略应该能够保证追溯性、准确性和相对快速的项目实施,以及对于一些容易避免的错误予以避免。

值得一提的是,如果您正在为自己的项目寻找一些可公开访问的API,GitHub上就有一个较为详尽的​​公共API列表​​。它涵括了诸如天气预报等Web应用所需要用到的、完整的API密钥和OAuth授权。

私有API

作为公共API的对立面,私有API仅适用于单个公司。企业开发人员经常使用它们来实现Web应用之间在某种程度上的数据交换、提供对企业数据库和其他内部共享服务的访问权限、以及与其他内部API通信、或为公司员工构建内部应用。

事实上,越来越多的公司认识到使用自己的API的价值。据此,他们可以节省更多的时间和资源,提高应用的敏捷性和灵活性,并有助于降低整体运营成本。

如何与私有API集成

由于私有API通常驻留在具有高度安全性的环境中,因此与它们的集成需要通过非常严格的防火墙或VPN服务,来发起调用(当然首先需要能够允许外部到访问)。这意味着,如果您想知道本公司的集成中间件是否确实有用,就应该去检查它是否具有某种安全机制/层,去访问本地系统和Web应用。

同样值得注意的是,那些对于公共API的成功至关重要的某些方面,却可能在私有API中显得无关紧要。例如,由于已被假定为受到了公司现有安全策略的保护,因此安全性机制在私有API并不重要。同时,由于开发人员经常在文档中使用内部或技术性的名称,因此版本控制不一定会被包含在设计中。

无论您准备采用手动编码,还是某个集成式中间件,新加入团队的成员或其他部门,在集成私有API时都会面临一些挑战。因此,如果您正在负责设计私有API的话,我建议您像设计公共API那样,去准备好API的各项最佳实践和检查。

伙伴API

伙伴API属于内部API的一个类别,但这些API通常在业务伙伴和B2B客户之间共享,而不是在某个组织内自己使用。此类API的一个常见用例是,在供应链集成或销售点的集成中,连接两个内部业务软件的应用程序。在这种情况下,API往往充当的是经典的EDI(电子数据交换,Electronic Data Interchange)集成的替代方案。

伙伴API通常具有更加强大的授权、身份验证和安全功能。它们能够允许外部各方去访问某些敏感数据。例如,伙伴CRM或ERP应用的客户数据,或者是医疗机构患者医疗数据等。

如何与伙伴API集成

由于伙伴API不是公开可用的,因此您可能无法找到允许即时“连接”的集成方案。如果您打算集成此类伙伴API的话,就需要提供良好的手动编码、或者去寻找支持自助服务、以及自定义连接器的集成中间件的帮助。

有时您可能需要将伙伴API与基于EDI的Web应用相连接,那么您就需要进行诸如从EDIFACT到JSON的各种数据格式的转换。当然,一个良好的企业集成平台,往往能够支持此类功能。此外,您也可以使用各种专用的解析器,例如:用于UN/EDIFACT文档的​​Javascript流解析器​​。

复合API

我个人觉得复合API的使用场景最广泛。例如在购物车中创建订单时,就需要对多个端点进行多次API调用,其中包括:创建新的客户、创建新的订单、向该订单添加新的商品、展示分类商品等。一个复合API往往可以在一次性调用中,完成所有这些工作。这无疑加快了多任务处理的能力和效率。例如,下面是Salesforce的​​复合REST API​​的属性文件:

{
"compositeRequest" : [{
  "method" : "POST",
  "url" : "/services/data/v52.0/sobjects/Account",
  "referenceId" : "refAccount",
  "body" : { "Name" : "Sample Account" }
  },{
  "method" : "POST",
  "url" : "/services/data/v52.0/sobjects/Contact",
  "referenceId" : "refContact",
  "body" : { 
    "LastName" : "Sample Contact",
    "AccountId" : "@{refAccount.id}"
    }
  }]
}

在上述文件中,其API在一次性调用中,最多可以有25个所谓的子请求。

复合API的另一个实用场景是,从多个服务中提取信息,以完成微服务架构模式中的单个任务。不过,复合API也不一定需要创建全新的API。在许多情况下,您可以通过在一个序列中包装多个调用或请求,来扩充现有API的设计。

如何与复合API集成

在集成方面,复合API与常规公共API并没有太大的区别。事实上,如果您的集成平台方案已经具有被用于REST或SOAP的通用连接器的话,您可以轻松地使用它来连接到复合API处。

与不同的API架构和协议集成

下面,让我们简要地讨论一下,在使用具有不同架构和/或协议的API时,该如何定义可接受的数据类型和命令。当然,在大多数时候,您可能会用到REST和SOAP等API。其中,REST是一种架构风格,而SOAP是一种协议。它们之间有着各种相似之处,可以通过HTTP和XML进行通信,因此彼此的集成非常容易。

当然,两者之间也有着显著的差异。例如,

  • 为了在服务器上公开Web应用业务逻辑的特定部分,SOAP会使用服务接口,而REST则使用URI。
  • REST API支持包括:纯文本、XML、JSON和CSV在内的多种数据格式,而SOAP仅支持XML。
  • REST通常被认为比SOAP更轻量级、而且消耗的资源也更少。

就两者的集成而言,我们需要在这两种API之间进行某种“翻译”。当选择手动集成这些API时,您可以使用Postman等工具来自动执行此类操作。例如,您可以调用一个Web应用程序的SOAP API,并将返回的XML解析为您需要的数据。之后,您可以将该XML转换为诸如JSON格式,并将这些数据推送到另一个Web应用程序的REST API处。可见,当您的公司部署了可以默认处理REST和基于SOAP的Web应用与服务之间的数据转换集成API之后,它将使您的工作变得更加轻松,应用的效率大幅提升。

用工具

成功的前端工程师很会善用工具,这些年低代码概念开始流行,像国外的 Mendix,国内的 JNPF,这种新型的开发方式,图形化的拖拉拽配置界面,并兼容了自定义的组件、代码扩展,确实在 B 端后台管理类网站建设中很大程度上的提升了效率。

开源地址:JNPF体验中心

代码量少,系统的稳定性和易调整性都会得到一定的保障。基于代码生成器,可一站式开发多端使用 Web、Android、IOS、微信小程序。代码自动生成后可以下载本地,进行二次开发,有效提高整体开发效率。同时,支持多种云环境部署、本地部署给予最大的安全保障,可以快速搭建适合自身应用场景的产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/954605.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

日本排核污水:有人2天赚了800万

来谈1个非常夸张的事,有人2天用它搞了800多万,这一波完全震惊我和小伙伴,哪位兄弟老哥有货和资源的抓紧去搞,这波红利能持续好一段时间。 24号中午发生了件大事件,让所有人都气愤!流量巨大,不管…

Python正则表达式简单教程

当涉及到处理文本数据时,正则表达式是一个非常有用的工具。它可以用于在字符串中进行模式匹配、搜索、替换等操作。以下是一个简单的Python正则表达式教程,从基础开始介绍如何使用正则表达式。 什么是正则表达式? 正则表达式(Re…

nextTick不能获取到图片的宽高度

nextTick方法本身并不能直接获取图片的宽高度,它只是用于在下次DOM更新循环结束后执行回调函数。要获取图片的宽高度,需要在回调函数中使用其他方法来获取。 一种常见的方法是使用Image对象来加载图片,并在加载完成后获取图片的宽高度。可以…

01JVM_内存结构

一、什么是JVM 1.JVM的定义 Java程序的运行环境,java二进制字节码的运行环境 2.JVM的好处 ①一次编写,到处运行 ②自动内存管理,垃圾回收功能 ③数组下标越界检查 ④多态 3.jvm,jre,jdk的比较 3.常见的JVM 主…

Windows下Git Bash调用rsync

rsync 提供了补充只需要在git安装目录下放入对应的文件即可。 需要将这个三个文件放到git的bin目录下 如果是默认安装路径是如下: C:\Program Files\Git\usr\bin 然后大功告成。

软件测试Day3|软件测试理论01

目录 1.缺陷1.1 定义1.2 缺陷由来 2. 软件测试的定义和目的2.1 软件测试定义2.2 软件测试目的 3. 软件开发模型3.1 生命周期3.2 瀑布模型3.3 螺旋模型3.4 迭代模型3.5 敏捷开发模型-scrum3.6 增量模型3.7 快速原型模型 4. 软件测试流程和模型4.1 软件测试工作流程4.2 软件测试模…

【AntV】canvas表格s2完全封装手册

前言 由于我们业务中有很多地方需要有纵向复制,刷选等操作,一般的传统表格并不支持。 目前支持度较好的葡萄城表格与handsontable都需要收费,而s2作为一款轻量级开源表单较为符合我们的需求,但是由于s2仍然不够成熟,有非常多的功能需要自定义。 我在公司对s2做了大量封…

100天精通Golang(基础入门篇)——第20天:Golang 接口 深度解析☞从基础到高级

🌷🍁 博主猫头虎🐅🐾 带您进入 Golang 语言的新世界✨✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文并茂&#x1f…

FI 数据源(AP) 及 增量逻辑

AP 一般AP里要分析行项目数据,交易数据,历史付款信息。 还有一些供应商主数据。 基础的抽取数据源就是下面几个: 0FI_AP_4: Vendors: Line Items with Delta Extrcation0FI_AP_6: Vendor Sales Figures via Delta Extraction0FI_AP_7: Ve…

SQLPro Studio for Mac:强大的SQL开发和管理工具

SQLPro Studio for Mac是一款强大的Mac上使用的SQL开发和管理工具,它支持各种数据库,包括MySQL,PostgreSQL,SQLite等。使用 SQLPro Studio,您可以轻松地连接和管理您的数据库,执行SQL查询和脚本&#xff0c…

【python爬虫】8.温故而知新

文章目录 前言回顾前路代码实现体验代码功能拆解获取数据解析提取数据存储数据 程序实现与总结 前言 Hello又见面了!上一关我们学习了爬虫数据的存储,并成功将QQ音乐周杰伦歌曲信息的数据存储进了csv文件和excel文件。 学到这里,说明你已经…

国标视频融合云平台EasyCVR视频汇聚平台关于远程控制的详细介绍

EasyCVR国标视频融合云平台是一个能在复杂网络环境下统一汇聚、整合和集中管理各类分散视频资源的平台。该平台提供了多种视频能力和服务,包括视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、集群、电子地图、H.265视频自动转码和智能分析等…

一种基于WinDump自动抓包实现方法

本发明的技术方案包括以下步骤和组件: 配置抓包参数:设置抓包的IP、端口以及过滤包大小等参数,以控制抓取的数据范围。循环自动抓包:利用WinDump工具实现循环自动抓包功能,类似于记录日志的方式保留抓包数据。当抓包数…

年收入超10亿美金?OpenAI 的“赚钱戏法”

点击关注 文丨郝鑫、刘雨琦,编丨刘雨琦 “我当时见到他不到三分钟,就在想,啊,19岁的比尔盖茨估计也就这样了吧!” 在YC创始人Paul Graham(格雷厄姆)的眼里,28岁的Sam Altman与19…

香港服务器快还是台湾服务器快?

​  基于机房位置不同,香港服务器相对于台湾服务器在访问速度方面有一定的优势。香港服务器拥有CN2线路,因此访问速度较快。在网络服务商方面,中华电信等台湾服务商提供的带宽也具有很高的性价比。 香港服务器对大陆用户的影响 对于大陆用户…

如何将电子画册生成二维码,扫码查看产品图册?

随着移动互联网的发展,二维码已经成为了人们生活中不可或缺的一部分。无论是支付宝、微信支付的扫码支付,还是商家的促销活动、产品包装上的二维码,都展示了二维码的广泛应用。 电子画册也果不其然,它也可以生成二维码&#xff0c…

高德地图jsapi报错INVALID_USER_SCODE

看了各种网上方法,还是搞不定。无奈在高德开放平台提了工单。 很快高德的技术人员就给出了答复“您好,您检查一下您的安全密钥是否在key之前,安全密钥设置必须是在JS API 脚本加载之前进行设置,否则设置无效。” 并给出了推荐的…

使用 zipfile创建文件压缩工具

在本篇博客中,我们将使用 wxPython 模块创建一个简单的文件压缩工具。该工具具有图形用户界面(GUI),可以选择源文件夹中的文件,将其压缩为 ZIP 文件,并将压缩文件保存到目标文件夹中。 C:\pythoncode\new\z…

如何提高工业网关的数据传输速度?

工业网关是工业物联网系统中不可或缺的设备,提高工业网关的数据采集、传输速度,是保障和优化物联网系统运营效率的基础。如何提高工业物联网关的数据传输速度?本篇就为大家简单介绍一下。 1、选用高品质网络设备 选用具有足够带宽容量的高质…

深圳发墨西哥专线要多久才能清关?

深圳发往墨西哥专线的货物清关时间会受到多种因素的影响,包括货物的性质、数量、海关政策、运输方式以及货物的文件准备等。下面将详细介绍这些因素对清关时间的影响。 1.货物的性质和数量是影响清关时间的重要因素之一。 一般来说,墨西哥专线中普通商品…