前言

目前从事数据可视化大屏的开发,接触最多的就是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"
 }
  1. Eolink请求设置
    在这里插入图片描述
    在这里插入图片描述
  2. 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项目管理目录

在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐