ApiAgent PHP 开发的 API 接口代理程序开源项目

我要开发同款
匿名用户2017年10月10日
46阅读
开发技术PHP
所属分类Web应用开发
授权协议MIT

作品详情

介绍

ApiAgent是一个使用PHP开发的API接口代理程序,支持跨域接口代理和接口合并请求功能。

ApiAgent不光是一个接口代理项目,也可以作为类库使用。

跨域接口代理

通过index.php文件访问,默认参数为url,注意需要urlencode编码。

例子:https://apiagent.toolapi.net/?url=https://www.baidu.com

(上面是在线演示地址,随时可能崩掉,正式使用时请改成你自己的!)

该接口原样返回状态码、返回头(包括cookie)、返回内容。

配置文件:Config/cross.php

接口合并请求

通过batch.php文件访问,请求规则是POST提交json格式内容。

配置文件:Config/batch.php

jQuery调用样例代码:

// 设置跨域传递cookie,如果不需要可以去除$.ajaxSetup({xhrFields: {withCredentials: true},});$.ajax({// 在线演示地址,随时可能崩掉,正式使用时请改成你自己的url: 'https://apiagent.toolapi.net/batch.php',method: 'post',data: JSON.stringify({/*aip: {url: 'ip', // 在apis中预定义的接口,传别名即可getData: {ip: '218.4.255.255'},},*/aip: {url: 'https://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json',getData: {ip: '218.4.255.255'}, // 这里的IP改变也会改变下面baike的结果哦},// weather2是错误的结果,会中断/*weather2: {url: 'https://www.weather.com.cn/data/sk/1010101001.html',condition: { // 返回结果.weatherinfo不为nullvalue: '{$weather2.weatherinfo}',regular: 'is not null',},},*/baike: {url: 'https://baike.baidu.com/api/openapi/BaikeLemmaCardApi?scope=103&format=json&appid=379020&bk_length=600',// get参数getData: {bk_key: '{$aip.city}', // api接口中返回的数据.city},// post参数postData: {},// GET请求数据类型getDataType: 'form',// POST请求数据类型bodyDataType: 'form',// 自定义header,不定义则使用默认header: {'test': 'aaa',},// 验证返回结果是否正确,不正确会中断请求并返回condition: {value: '{$baike.errno}',regular: 'is not null',},},}),success: function(data){console.debug(data);}});接口合并请求返回结构{// 是否成功    "success": true,// 错误信息    "message": "",// 返回正文数据    "data": {        "test": ""    },// 返回结果    "result": {// 键名=>返回头数据        "test": {// 状态码            "status_code": 208,// 返回头            "header": {                "Server": "squid/3.5.20",                "Date": "Mon, 09 Oct 2017 07:38:54 GMT",                "Content-Type": "application/octet-stream",                "Content-Length": "0",                "Connection": "keep-alive"            },// 请求耗时            "time": 0.047        }    }}预定义验证规则代码含义isnullnull===$valueisnotnullnull!==$valueemptyarray0===count($value[0])notemptyarraycount($value[0])>0truetrue===$valuefalsefalse===$value

除了预定义规则,你还可以编写正则来验证。如:\d+

dataType数据类型名称含义form表单参数格式(如:a=1&b=2),默认json转为json格式提交

不传默认为form,其它名称不对传递来的参数做任何处理

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论