文章目录
前言
一、eolink初感受
工作空间设置
API应用导航
二、个人测试API的原始方法
1.现测试API和开发的操作方法
2.现测试API的核心代码
3.控制台查看API数据详情
4.个人API管理总结
三、Eolink实战API测试及管理
1.微信公众号API对接管理
2.GPS经纬度API对接管理
3.小鹅通API对接管理
4.zabbix监控API对接管理
5.不同API项目管理目录
前言
目前从事数据可视化大屏的开发,接触最多的就是API:后端数据的输入调用、第三方平台API的授权调用。不同的API有不同的鉴权方式,有不同的爬取方式,随着每天大量的API增长,公开Web API的调用…项目周期越长,给API管理和调用到来的就是“脑细胞”的不断死亡和发际线的提升。未来API将会使用的越来越多,每日API调用量在不断飙升,如何能够安全有效将这些API管理起来,对一个开发者、企业都是至关重要的环节。
一、eolink初感受
工作空间设置
从账户个性化设置、工作空间设置、订单管理到帮助中心,菜单导航走的是清爽简洁风。
API应用导航
API应用:API管理、API自动化测试、API监控、API商店、API共享,将开发者能够应用到的功能,也做了集合链接,方便快捷。
二、个人测试API的原始方法
1.现测试API和开发的操作方法
1.配置本地域名;
2.调用JQ库,配置ajax;
3.F12,在控制台查看对应的API数据;
4.按照开发需求进行数据过滤、数据清洗和数据梳理等工作;
2.现测试API的核心代码
$(function () { $.ajax({ type: 'post', url: "http://*****/service/page/sensor/gps/simple.json?paged=1&pageSize=100", dataType: "json", success: function (res) { console.log(res); }, error: function (err) { console.log(err) } }); })
3.控制台查看API数据详情
4.个人API管理总结
对于不同的API测试总有不同的疑难杂症存在的,从POSTMAN、Apipost以及phpstorm自带的API测试工具等都有涉猎,但是总没有称心如意的API管理工具。开发工作的匆忙,也总是在想等自己有时间了好好做个API的测试管理工具,也总是想一下中流逝了。依然延续着新的API采用如上的模式进行测试。
但是日经月累的开发,没有及时的复盘和总结,在效率管理上,自己开发API接口的局限性上都有明显的短板和不足。
三、Eolink实战API测试及管理
1.微信公众号API对接管理
使用微信公众号API获取access_token:
1.请求协议:HTTPS
2.请求方法:GET
3.请求链接:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx44604d***&secret=1c09ed243eb101**,在测试环境中替换成自己对应的appid和secret即可。
4.配置方式如下:
5.测试中常见问题
点击【发送[通过服务器]】按钮,由于微信公众号的鉴权规则比较多,但是错误提示比较清晰且有对应的错误代码,仅将个人在测试中遇见的文件进行罗列:
IP未设置成白名单
{ "errcode": 40164, "errmsg": "invalid ip 47.103.65.214 ipv6 ::ffff:47.103.65.214, not in whitelist rid: 637e08bf-613a879e-14d3bd18" }
appsecret错误
{ "errcode": 40125, "errmsg": "invalid appsecret rid: 637e093a-731aa1b3-32881ae7" }
成功则出现下面内容:
{ "access_token": "63_RundNM9kRkondLvjgrig4pZpKr***", "expires_in": 7200 }
2.GPS经纬度API对接管理
目标: 返回对应的json数据
1.请求协议:HTTP
2.请求方法:POST
3.请求链接:http://*****/service/page/sensor/gps/simple.json?paged=1&pageSize=100。
4.请求参数:
contentType: "application/json;",
headers: {"USER-KEY": "426aad8a150a4d85a8fa7**"},
{ "group_id": 141, "start_time": "2022-11-12 15:15:08", "end_time":"2822-11-29 14:15:88" }
5.Eolink请求设置
6.JQ的API请求方式
$.ajax({ type: 'post', url: "http://***/service/page/sensor/gps/simple.json?paged=1&pageSize=100", data: JSON.stringify( { group_id: 140, start_time: "2022-11-12 14:15:08", end_time: "2022-11-12 18:00:00" }), headers: { "USER-KEY": "426aad8a15**" }, contentType: "application/json; charset=utf-8", dataType: "json", success: function (res) { console.log(res); }, error: function (err) { console.log(err) } });
3.小鹅通API对接管理
目标:调用该接口获取 access_token
1.请求方式:GET
2.接口地址:https://api.xiaoe-tech.com/token
3.请求参数:
{ "app_id": "appxxxxxxxxxxx", "client_id": "xopxxxxxxxxxx", "secret_key": "xxxxxxxxxxxxx", "grant_type": "client_credential" //获取token时, grant_type = client_credential }
4. 获取access_token示例(php示例)
class TokenManage { ... const URL = "https://api.xiaoe-tech.com/token"; private $app_id = "appXXXXXXXXXX"; // 店铺的业务id private $client_id = "xopXXXXXXXXXX"; // 应用的唯一标识 private $secret_key = "XXXXXXXXXX"; // 应用的凭证秘钥 private $grant_type = "client_credential"; public function requestToken(){ $params = [ "app_id" => $this->app_id, "client_id" => $this->client_id, "secret_key" => $this->secret_key, "grant_type" => $this->grant_type ]; // 发起请求 $result = Http::curlGet(self::URL, $params); if (!empty($result['body']) && $result['body']['code'] == 0) { $this->writeFile($result['body']['data']); return $result['body']['data']['access_token']; } return false; } ... }
4.zabbix监控API对接管理
1.鉴权配置
2.头部配置:application/json-rpc
{ "jsonrpc": "2.0", "result": "0424bd59b807674191e7d77572075f33", "id": 1 }
5.不同API项目管理目录