什么是 API Payload?
不同方式的交流包括面对面的口头交流、短信或信件中的书面交流,以及通过肢体语言进行的非语言交流。
任何通信通道都涉及消息从发送方传输到接收方。计算机网络中,需要一种将数据从发送方传递到接收方的方法。
本文将探讨通过互联网传输数据的方法,重点关注API中的有效负载。将首先定义开销和有效负载之间的关系,然后探索API中有效负载使用的不同通信格式。
API 中的有效负载是什么?
在API(应用程序编程接口)的上下文中,有效负载指的是在请求中发送或在响应中接收的数据。有效负载是客户端(如web应用程序或移动应用程序)与服务器之间传输的消息的核心内容,包含了执行特定操作或检索特定数据所需的信息。
例如,当使用API向服务器发出HTTP请求时,有效负载通常包含在请求体中。根据API的设计和规范,有效负载通常以结构化的格式进行组织,例如JSON(JavaScript对象表示法)或XML(可扩展标记语言)。
API 中的有效载荷概述
当数据通过互联网传输时,会产生两部分信息:开销和有效负载。开销数据用于标识负载的源或目的地,仅在数据传输过程中使用,一旦到达目的地,开销信息便从视图中删除。
例如,发送消息“Hello”并将其标记为“msg”(消息的缩写)。在这种情况下,“Hello”是有效负载,而“msg”是开销。到达目的地后,唯一可见的数据是“Hello”,而“msg”仅用于内部目的,以识别数据。
API的有效负载可以以多种格式发送或接收,例如JSON或XML。在查询字符串中,负载通常用大括号“{}”来标识。
API 中有效负载的示例
有效负载是从服务器发送或接收的数据块中的基本信息。以下是API中JSON有效负载的示例:
X 的 API:
概述: X (Twitter) API 允许开发人员访问并与 X 的庞大数据集交互,使他们能够构建可以读取、写入和管理 tweet、用户帐户和各种 X 功能的应用程序。
端点: API 为获取用户时间线、发布 tweet、搜索 tweet、检索用户信息等操作提供端点。
有效载荷示例 (POST 请求 tweet):
Endpoint: POST /statuses/update
Payload:
{
"status": "Hello, Twitter! This is a test tweet from my API client. #API #Twitter"
}
谷歌地图 API:
概述: Google Maps API 允许开发人员将 Google Maps 集成到他们的应用程序和网站中,提供显示地图、创建自定义标记、计算方向和地理编码等功能。
端点: API 提供端点来与地图数据、地点和方向等进行交互。
有效负载示例 (GET 请求地理编码):
端点: GET /maps/api/geocode/json
Query Parameters:
{
"address": "1600 Amphitheatre Parkway, Mountain View, CA"
}
虽然格式略有不同,但有效负载和开销数据保持不变。
负载格式
我们将讨论三种类型的有效负载格式:
- API请求有效负载格式
- API OK响应有效负载格式
- 失败的响应负载格式
API 请求有效载荷格式
一个负载 API 请求需要两个参数和一个子元素:
- interfaceType:
interfaceType
标识这是一个 API 请求格式,必须设置为“手动”。 - methodName:
methodName
定义要调用的 API 方法。 - parameters:
parameters
包含被调用方法所需的参数。
{
"name": "John Doe",
"email": "john.doe@example.com",
"age": 30,
"is_active": true,
"interests": ["programming", "reading", "hiking"]
}
API OK 响应有效载荷格式
一个成功的有效负载响应将包含一个参数和一个子元素:
- responseType:
responseType
必须设置为“OK”。 - data:
data
可能包含被调用方法响应所需的零个或多个参数。
{
"user_id": 12345,
"name": "John Doe",
"email": "john.doe@example.com",
"age": 30,
"is_active": true,
"interests": ["programming", "reading", "hiking"],
"created_at": "2023-07-21T12:34:56Z"
}
API失败响应有效载荷格式
失败的有效负载响应将包含一个参数和一个子元素:
- responseType:
responseType
必须设置为FAILED
。 - messages:
messages
可能包含一个由零条或多条错误消息组成的数组。
{
"error_code": 404,
"error_message": "User not found",
"error_details": {
"request_id": "123abc",
"timestamp": "2023-07-21T15:45:32Z"
}
}
API 请求有效负载格式取决于 API 的设计和特定操作所需的数据。然而,API 请求有效负载中使用的两种常见数据交换格式是 JSON 和 XML。这两种格式都得到了广泛支持,并提供了一种结构化的方式来表示数据。
JSON (JavaScript Object Notation):
JSON 是一种轻量级的、人类可读的数据交换格式,易于理解和处理。它广泛应用于现代 web 开发和 API。JSON 有效负载由键值对组成,可以表示多种数据类型,如对象、数组、字符串、数字、布尔值和空值。
在假设的 API 中创建用户的 JSON 有效负载示例:
{
"name": "John Doe",
"email": "john.doe@example.com",
"age": 30,
"is_active": true,
"interests": ["programming", "reading", "hiking"]
}
在API中与有效负载通信
在计算机网络中,通信包括发送和接收消息。发送方必须正确处理消息,而接收方则需要具备处理消息所需的所有资源。
在 API 中,有效负载是在消息上下文中使用的,以便将其与开销数据区分开。正确解析请求需要参考开销数据。掌握这些信息后,可以更好地理解如何在计算机网络中通过 API 的有效负载传输消息。