介绍
ApiAget是一个使用PHP开发的API接口代理程序,支持跨域接口代理和接口合并请求功能。
ApiAget不光是一个接口代理项目,也可以作为类库使用。
跨域接口代理通过idex.php文件访问,默认参数为url,注意需要urlecode编码。
例子:https://apiaget.toolapi.et/?url=https://www.baidu.com
(上面是在线演示地址,随时可能崩掉,正式使用时请改成你自己的!)
该接口原样返回状态码、返回头(包括cookie)、返回内容。
配置文件:Cofig/cross.php
接口合并请求通过batch.php文件访问,请求规则是POST提交jso格式内容。
配置文件:Cofig/batch.php
jQuery调用样例代码:
// 设置跨域传递cookie,如果不需要可以去除$.ajaxSetup({xhrFields: {withCredetials: true},});$.ajax({// 在线演示地址,随时可能崩掉,正式使用时请改成你自己的url: 'https://apiaget.toolapi.et/batch.php',method: 'post',data: JSON.strigify({/*aip: {url: 'ip', // 在apis中预定义的接口,传别名即可getData: {ip: '218.4.255.255'},},*/aip: {url: 'https://it.dpool.sia.com.c/iplookup/iplookup.php?format=jso',getData: {ip: '218.4.255.255'}, // 这里的IP改变也会改变下面baike的结果哦},// weather2是错误的结果,会中断/*weather2: {url: 'https://www.weather.com.c/data/sk/1010101001.html',coditio: { // 返回结果.weatherifo不为ullvalue: '{$weather2.weatherifo}',regular: 'is ot ull',},},*/baike: {url: 'https://baike.baidu.com/api/opeapi/BaikeLemmaCardApi?scope=103&format=jso&appid=379020&bk_legth=600',// get参数getData: {bk_key: '{$aip.city}', // api接口中返回的数据.city},// post参数postData: {},// GET请求数据类型getDataType: 'form',// POST请求数据类型bodyDataType: 'form',// 自定义header,不定义则使用默认header: {'test': 'aaa',},// 验证返回结果是否正确,不正确会中断请求并返回coditio: {value: '{$baike.erro}',regular: 'is ot ull',},},}),success: fuctio(data){cosole.debug(data);}});接口合并请求返回结构{// 是否成功 "success": true,// 错误信息 "message": "",// 返回正文数据 "data": { "test": "" },// 返回结果 "result": {// 键名=>返回头数据 "test": {// 状态码 "status_code": 208,// 返回头 "header": { "Server": "squid/3.5.20", "Date": "Mo, 09 Oct 2017 07:38:54 GMT", "Cotet-Type": "applicatio/octet-stream", "Cotet-Legth": "0", "Coectio": "keep-alive" },// 请求耗时 "time": 0.047 } }}预定义验证规则代码含义isullull===$valueisotullull!==$valueemptyarray0===cout($value[0])otemptyarraycout($value[0])>0truetrue===$valuefalsefalse===$value除了预定义规则,你还可以编写正则来验证。如:\d+
dataType数据类型名称含义form表单参数格式(如:a=1&b=2),默认jso转为jso格式提交不传默认为form,其它名称不对传递来的参数做任何处理
评论