前言
为什么需要接口(API)?
因为不同的平台或系统可能使用不同的技术栈、编程语言或数据格式。API提供了一个标准化的方式,使得这些不同的系统可以相互交换数据和功能调用,实现互操作性
在开发日常的项目交互中,不同平台,不同项目之间常常需要通信,而相互通信就需要指定协议,保证双方的正常通信。这种方式称之为接口,接口协议,数据格式由双方或单方制定,便于后续通信的数据交互。
1. 接口协议的类型
HTTP/HTTPS、SOAP、MQTT等
2. 接口协议的数据格式
在接口协议中,用于数据交换的数据格式主要有以下几种:
-
JSON (JavaScript Object Notation): 一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的对象字面量语法,但独立于语言,几乎所有现代编程语言都支持。
-
XML (eXtensible Markup Language): 一种可扩展标记语言,用于编码文档以及作为数据存储和传输的格式。它允许自定义标签,使得信息有结构化和层次化,但相对于JSON而言,其体积通常较大,解析速度也较慢。
-
YAML (YAML Ain't Markup Language): 一种人类可读的数据序列化标准,适用于所有编程语言的数据交换和配置文件。YAML倾向于更加易读和简洁,支持注释,非常适合配置文件。
-
Protocol Buffers (Protobuf): 谷歌开发的一种语言无关、平台无关、可扩展的序列化结构数据的方法,它更小、更快、更简单。Protobuf需要先定义数据结构,然后使用编译器生成源代码,用于序列化和解析数据。
-
Form Data: 在Web开发中,经常用于HTTP请求中发送表单数据。它支持发送文本数据以及文件。
-
Query Strings: 在URL中使用,尤其是在GET请求中发送简单的数据。它们通过在URL的末尾附加键值对的方式来传递信息。
-
SOAP (Simple Object Access Protocol): SOAP消息是基于XML的,用于在网络上交换结构化信息。它是与Web服务和企业级应用程序之间的通信协议相关联的一种标凈格式。
-
CBOR (Concise Binary Object Representation): 一种用于数组、映射(键值对集合)、文本字符串、字节串以及各种大小的数字(包括浮点数)的二进制数据序列化格式,旨在提供与JSON相当的性能和功能。
-
MessagePack: 一种高效的二进制序列化格式,允许你在多种语言之间交换数据。它类似于JSON,但更快更小。
每种数据格式都有其特定的用途和优势。例如,JSON由于其简洁性和易于理解的结构,已成为Web API中的首选数据格式。而Protobuf和MessagePack由于其高效的编解码性能,常用于内部通信和存储。在选择合适的数据格式时,需要考虑数据的复杂性、应用场景的需求以及性能要求。
如果上述数据格式不满足需求,就需要自己指定数据格式了
接口(API)开发工具-Apifox
1. 接口编写/开发
既然有那么多的数据协议,就会有相应的接口开发工具供我们快速开发接口,指定接口数据格式。
在接口开发出期,肯定需要不断修改的,如果直接用word等文本编写,很麻烦,还不好看。
就需要个接口开发工具-Apifox了
这个我看了一下,相比其他软件,可以说是国内做得最好的,免费,界面又好看
可以进行团队协作,每次修改,每个成员都可以刷新实时看到。在开发初期,对于数据格式的修改,字段参数等修改,特别方便。还可以分享链接给对方看(给个例子你们看看:https://apifox.com/apidoc/shared-9c88b41a-e4e6-4761-9a63-a500e471a2cf/api-176729421),数据实时更新。开发完成后,可以导出来,导出格式如下,非常方便
开发完接口后,可以点击运行测试接口是否正常,数据是否正常返回
2. 接口测试
除了接口开发,还有接口测试,可以用作tcp的接口测试,通过tcp/http的方式发送指定格式的数据,指定超时时间,接收返回的数据,有助于接口的快速测试,完成开发。
其他
除了这些,还有很多我没有用到的,需要了解的可以去了解一下。
官网网址入下:Apifox - API 文档、调试、Mock、测试一体化协作平台。拥有接口文档管理、接口调试、Mock、自动化测试等功能,接口开发、测试、联调效率,提升 10 倍。最好用的接口文档管理工具,接口自动化测试工具。