大家好,欢迎来到IT知识分享网。
API的前言
互联网的应用特点是具有开放式的业务体系结构之一。关键的技术就是网络控制与应用层之间的应用程序接口–API。通过API接口很多问题便水到渠成,迎刃而解。
API到底是一种什么技术呢
具有开放式的业务体系结构将是下一代网络的重要特征之一。其中,关键的技术之一就是网络控制与应用层之间的应用程序接口(API)。通过联接应用程序API,业务开发商 、独立软件提供商 (ISV)等第三方应用可以获得使用现有网络资源的能力,不用再去编写领域外的程序,即可拿来提供商开发好的专业程序,通过各行各业的API接口完美的解决了行业之间的壁垒难题。
API–应用程序接口的简称
API 是一些功能、定义或者协议的集合,提供应用程序或者程序开发人员基于软件访问一组例程的能力,对外封装完善,调用时无需编写与学习 API内部源码,依据 API文档功能说明书来使用即可。
API接口的数据有多种格式
当前 API 接口支持 XLSX、CSV、RDF、JSON、XML等数据格式,其中 JSON 和 XML 是主流的数据格式,几乎所有 API 接口都支持这两种数据格式。
JSON (JavaScript Object Notation)是一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性,可在不同平台之间进行数据交换。
XML 是扩展标记语言(Extensible Markup Language),用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
JSON与XML相比的不同特点
JSON与XML 相比是一种更加轻量级的数据格式,而且更加易于解析,支持多种语言,这使得 JSON 在大数据时代备受欢迎,而且随着应用程序和平台的不断发展,应用程序的功能变得越来越复杂,但为了保证用户体验的优化,需要通过重构代码,将复杂的逻辑封装在内部,保持其对外提供的 API 仍然简洁。JSON 也正因为简洁这一优势逐渐超越了XML,成为了应用间的首选数据交换格式。
API接口功能:
用户系统接口可查询个人信息、账户收支明细、即将过期接口、当前接口请求数,无需登录用户就可便捷查询。
Api文档:
子接口:
- 接口用量查询
- 个人信息
- 即将到期接口
- 账户明细
- 当天请求数
接口地址: https://登录后显示/api/67/245(支持:http/https)
返回格式:json,xml
请求方式:GET,POST
POST 请求需要设置Header头:Content-Type: application/x-www-form-urlencoded;charset=utf-8
请求说明:
名称 |
必填 |
类型 |
说明 |
示例 参数另存 |
appid |
是 |
String |
应用ID,在后台我的应用查看或者添加 |
1 |
format |
否 |
String |
返回数据格式类型,每个接口已经说明支持返回格式:json,xml |
json |
sign |
是 |
String |
1.使用Md5方式验证,参数按一定规则md5后返回的字符串,详情点击这里阅读 |
52a32be274a5c |
Md5验证方式-加密顺序:
sign = MD5( appid1formatjson密钥) 查看加密规则说明 密钥不需要键名,请直接跟上32位的密钥
红色部分代表参数值,appid默认为1,请修改为自己的appid值,去我的应用查看以及密钥
*注意:空值不参与加密。
返回参数说明:
名称 |
必填 |
类型 |
说明 |
示例 参数另存 |
api_auth |
否 |
Integer |
授权方式:1 按次,2按月,0免费 |
月 |
api_id |
否 |
Integer |
接口的唯一标识 |
105 |
api_name |
否 |
String |
接口名称 |
全国城市概要简介 |
available |
否 |
Integer |
可用次数或者到期日期,按次计费的接口显示的是可用次数,按月计费的显示的是到期日期 |
2020-10-09 |
codeid |
否 |
Integer |
状态码,返回10000状态都会进行计费。具体说明可查看状态码说明 |
10000 |
curtime |
否 |
String |
当前服务器时间戳 |
|
message |
否 |
String |
请求状态说明 |
操作成功! |
retdata |
否 |
Array |
回数据集合,可能是数据、对象或者字符串 |
JSON返回示例:
|
||||
|
|||
|
|||
curtime |
: |
状态码说明:
状态码 |
说明 |
10000 |
返回成功 |
10001 |
appid必须指定,可以我的应用里面查看 |
10002 |
sign值必须指定,加密规则请前往帮助中心查看 |
10003 |
sign值验证不通过,加密规则请前往帮助中心查看 |
10004 |
时差不能超过10分钟,可以不传递这个参数,注意时间戳单位是秒 |
10005 |
appid错误,请检查appid值,前往会员中心->我的应用查看或添加 |
10006 |
当前IP地址未授权,请前往用户中心->我的应用添加ip{@info} |
10007 |
应用被禁用,请联系客服处理 |
10008 |
应用内没有该接口,请到我的应用里面添加这个接口 |
10009 |
api接口不存在 |
10010 |
您没有添加该api接口 |
10011 |
api已经到期 |
10012 |
没有订购任何api,请前往购买后再操作 |
10013 |
该接口已经暂停使用 |
10014 |
未知的错误,可以联系客服处理 |
10015 |
参数个数错误 |
10019 |
{@info} |
10017 |
time必须是整型 |
10018 |
次数不足 |
10020 |
子接口不存在,可能已经被关闭 |
10021 |
服务器发生错误 |
10022 |
帐户余额不足,请充值! |
10023 |
订单提交成功,等待回调结果 |
10024 |
调试模式数据 |
10025 |
查无数据 |
请求示例:
- PHP
- Python
$method = 'GET'; //请求方式 GET,POST $secretType = 'MD5'; //验证方式MD5,Hash 通过后台 我的应用去修改 $api_url = 'https://登录后显示/api/67/245'; $appid = '应用id';// 在后台我的应用查看; $secret = '应用密钥';// 在后台我的应用查看; $data = array( 'appid'=> '1', 'format'=> 'json', ); $data['appid'] = $appid; $data['time'] = time();//当前服务器时间 if('MD5' == $secretType){ ksort($data); //按照键名对数组排序,为数组值保留原来的键。 $md5String = ''; foreach($data as $key=>$val){ if(strlen($val)>0){ //过滤空值 $md5String.=$key.$val; } } $secret = md5($md5String.$secret); } $data['sign'] = $secret; if('GET'==$method){ $sendUrl = $api_url.'?'.http_build_query($data); //把数据转换成url参数形式,a=b&c=d&e=f $result = file_get_contents($sendUrl); }else{ $header = ['Content-Type: application/x-www-form-urlencoded;charset=utf-8']; $ch = curl_init(); if(is_array($data))$data = http_build_query($data); curl_setopt($ch, CURLOPT_URL, $api_url); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); curl_setopt($ch, CURLOPT_POST, true);//POST curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch, CURLOPT_ENCODING,'gzip,deflate'); $result = curl_exec($ch); } $result = json_decode($result,true); print_r($result);
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/58096.html