API 接口的定义
API(Application Programming Interface),即应用程序编程接口,是一组用于构建软件应用程序的协议、例程和工具。它定义了不同软件组件之间如何进行交互,就像是软件世界中的 “语言翻译官” 或者 “沟通桥梁”。
简单来说,当你使用一个软件应用(比如手机上的天气应用)去获取天气数据时,这个应用就是通过 API 接口向提供天气数据的服务器发送请求,服务器收到请求后,通过 API 接口返回天气数据给应用,然后应用才能把天气信息展示给你。
item_get-获得1688商品详情
1688.item_get
公共参数
名称 | 类型 | 必须 | 描述 |
---|---|---|---|
key | String | 是 | 调用key(必须以GET方式拼接在URL中) |
secret | String | 是 | 调用密钥 |
api_name | String | 是 | API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等] |
cache | String | 否 | [yes,no]默认yes,将调用缓存的数据,速度比较快 |
result_type | String | 否 | [json,jsonu,xml,serialize,var_export]返回数据格式,默认为json,jsonu输出的内容中文可以直接阅读 |
lang | String | 否 | [cn,en,ru]翻译语言,默认cn简体中文 |
version | String | 否 | API版本 |
请求参数
请求参数:num_iid=610947572360
参数说明:num_iid:1688商品ID
sales_data:&sales_data=1 获取近30天成交数据
agent:&agent=1 获取1688分销代发价格数据
二、API 接口的组成部分
-
请求方法
- API 接口的请求方法主要包括 GET、POST、PUT、DELETE 等。
- GET 方法用于从服务器获取数据。例如,当你在浏览器中输入一个网址,浏览器会发送一个 GET 请求到服务器,服务器会根据这个请求返回相应的产品数据。这种方法就像是向服务器 “询问” 信息,不会对服务器上的数据进行修改。
- POST 方法用于向服务器提交数据,通常用于创建新的资源。比如,当你在一个电商平台上注册新用户时,你的注册信息(如用户名、密码、邮箱等)会通过 POST 请求发送到服务器,服务器会根据这些信息创建一个新的用户账号。
- PUT 方法用于更新服务器上的现有资源。例如,你修改了自己在电商平台上的收货地址,这个修改后的地址信息会通过 PUT 请求发送到服务器,服务器会更新相应的用户信息。
- DELETE 方法用于删除服务器上的资源。比如,当你删除自己在某个应用中的一条记录(如删除一条待办事项)时,应用会发送一个 DELETE 请求到服务器,服务器会删除对应的记录。
-
请求参数和响应数据
- 请求参数:是在向 API 接口发送请求时传递的数据。这些参数可以是在 URL 中(对于 GET 请求),也称为查询字符串。例如,在这个请求中,“category=electronics” 和 “price_max=1000” 就是请求参数,用于告诉服务器要获取电子产品类别且价格不超过 1000 的产品数据。请求参数也可以在请求体中(对于 POST 和 PUT 请求),例如,在创建一个新用户时,用户的详细信息(如姓名、年龄等)会放在请求体中发送给服务器。
- 响应数据:是服务器根据请求返回的数据。响应数据的格式可以有多种,常见的有 JSON(JavaScript Object Notation)和 XML(eXtensible Markup Language)。JSON 格式的数据是一种轻量级的数据交换格式,它以键值对的形式组织数据,例如 {"name": "John", "age": 30, "city": "New York"}。XML 格式则是一种标记语言,数据被包含在各种标签中,如
<person><name>John</name><age>30</age><city>New York</city></person>
。现在 JSON 格式使用得更为广泛,因为它更简洁、易于解析。
-
端点(Endpoint)
- 端点是 API 接口的一个特定的 URL 地址,用于访问特定的资源或执行特定的操作。例如,是一个端点,用于获取产品相关的信息;可能是用于获取订单相关信息的端点。不同的端点对应不同的功能,就像不同的店铺有不同的门,每个门都通向不同的服务区域。
响应参数
Version: Date:
名称 | 类型 | 必须 | 示例值 | 描述 |
---|---|---|---|---|
item | item[] | 0 | 宝贝详情数据 |
<?php
// 请求示例 url 默认请求参数已经URL编码处理
// 本示例代码未加密secret参数明文传输,若要加密请参考:https://open.onebound.cn/help/demo/sdk/demo-sign.php
$method = "GET";
$url = "https://api-gw.onebound.cn/1688/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=610947572360";
$curl = curl_init();
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER,FALSE);
curl_setopt($curl, CURLOPT_FAILONERROR, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_ENCODING, "gzip");
var_dump(curl_exec($curl));
?>
API 接口的作用
- 软件 集成
- API 接口使得不同的软件系统能够相互集成。例如,一个企业可能使用了不同的软件来管理客户关系(CRM)、企业资源规划(ERP)和财务管理。通过 API 接口,这些软件可以相互通信和共享数据。比如,当销售部门在 CRM 系统中完成一笔订单时,CRM 系统可以通过 API 接口将订单信息发送到 ERP 系统,以便 ERP 系统更新库存和生产计划,同时也可以将财务信息发送到财务管理软件进行记账等操作。
- 平台扩展 和生态建设
- 许多大型平台(如社交媒体平台、电商平台等)通过开放 API 接口来吸引第三方开发者。以社交媒体平台为例,平台提供 API 接口允许第三方开发者创建各种应用,如微博平台开放 API 后,第三方开发者可以开发微博数据分析工具、自动发布工具等。这些应用可以丰富平台的功能,吸引更多用户,形成一个繁荣的生态系统。
- 提高 开发效率
- 对于开发者来说,使用 API 接口可以避免重复开发。比如,在开发一个旅游应用时,开发者不需要自己去收集和更新世界各地的酒店、景点等信息,而是可以使用旅游数据供应商提供的 API 接口来获取这些信息。这样可以节省大量的时间和精力,使开发者能够更专注于应用的核心功能开发,如用户界面设计、用户体验优化等。进入官网登录,可获得key和密钥,免费测试。
异常示例
{
"error": "item-not-found",
"reason": "商品没找到",
"error_code": "2000",
"success": 0,
"cache": 0,
"api_info": "today:0 max:10000",
"execution_time": 0.081,
"server_time": "Beijing/2020-06-10 23:44:00",
"call_args": [],
"api_type": "1688",
"request_id": "15ee0ffc041242"
}
错误码解释
状态代码(error_code) | 状态信息 | 详细描述 | 是否收费 |
---|---|---|---|
0000 | success | 接口调用成功并返回相关数据 | 是 |
2000 | Search success but no result | 接口访问成功,但是搜索没有结果 | 是 |
4000 | Server internal error | 服务器内部错误 | 否 |
4001 | Network error | 网络错误 | 否 |
4002 | Target server error | 目标服务器错误 | 否 |
4003 | Param error | 用户输入参数错误 | 忽略 |
4004 | Account not found | 用户帐号不存在 | 忽略 |
4005 | Invalid authentication credentials | 授权失败 | 忽略 |
4006 | API stopped | 您的当前API已停用 | 忽略 |
4007 | Account stopped | 您的账户已停用 | 忽略 |
4008 | API rate limit exceeded | 并发已达上限 | 忽略 |
4009 | API maintenance | API维护中 | 忽略 |
4010 | API not found with these values | API不存在 | 忽略 |
4012 | Please add api first | 请先添加api | 忽略 |
4013 | Number of calls exceeded | 调用次数超限 | 忽略 |
4014 | Missing url param | 参数缺失 | 忽略 |
4015 | Wrong pageToken | 参数pageToken有误 | 忽略 |
4016 | Insufficient balance | 余额不足 | 忽略 |
4017 | timeout error | 请求超时 | 否 |
5000 | unknown error | 未知错误 | 否 |