
Eolink征文活动--如何使用Eolink安全有效进行API管理
项目周期越长,给API管理和调用到来的就是“脑细胞”的不断死亡和发际线的提升。未来API将会使用的越来越多,每日API调用量在不断飙升,如何能够安全有效将这些API管理起来,对一个开发者、企业都是至关重要的环节。
文章目录
前言
目前从事数据可视化大屏的开发,接触最多的就是API:后端数据的输入调用、第三方平台API的授权调用。不同的API有不同的鉴权方式,有不同的爬取方式,随着每天大量的API增长,公开Web API的调用…项目周期越长,给API管理和调用到来的就是“脑细胞”的不断死亡和发际线的提升。未来API将会使用的越来越多,每日API调用量在不断飙升,如何能够安全有效将这些API管理起来,对一个开发者、企业都是至关重要的环节。
一、eolink初感受
工作空间设置
从账户个性化设置、工作空间设置、订单管理到帮助中心,菜单导航走的是清爽简洁风。
API应用导航
API应用:API管理、API自动化测试、API监控、API商店、API共享,将开发者能够应用到的功能,也做了集合链接,方便快捷。
二、个人测试API的原始方法
1.现测试API和开发的操作方法
- 配置本地域名;
- 调用JQ库,配置ajax;
- F12,在控制台查看对应的API数据;
- 按照开发需求进行数据过滤、数据清洗和数据梳理等工作;
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:
- 请求协议:HTTPS
- 请求方法:GET
- 请求链接:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx44604d***&secret=1c09ed243eb101**,在测试环境中替换成自己对应的appid和secret即可。
- 配置方式如下:
- 测试中常见问题
点击【发送[通过服务器]】按钮,由于微信公众号的鉴权规则比较多,但是错误提示比较清晰且有对应的错误代码,仅将个人在测试中遇见的文件进行罗列:
- 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数据
- 请求协议:HTTP
- 请求方法:POST
- 请求链接:http://*****/service/page/sensor/gps/simple.json?paged=1&pageSize=100。
- 请求参数:
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"
}
- Eolink请求设置
- 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
- 请求方式:GET
- 接口地址:https://api.xiaoe-tech.com/token
- 请求参数:
{
"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对接管理
- 鉴权配置
- 头部配置:application/json-rpc
{
"jsonrpc": "2.0",
"result": "0424bd59b807674191e7d77572075f33",
"id": 1
}
5.不同API项目管理目录
更多推荐
所有评论(0)