• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

    ApiAgent: PHP开发的API接口代理,支持跨域接口代理和接口合并请求功能。程序员聚集群 ...

    原作者: [db:作者] 来自: 网络 收藏 邀请

    开源软件名称:

    ApiAgent

    开源软件地址:

    https://gitee.com/yurunsoft/apiagent

    开源软件介绍:

    ApiAgent

    简介

    API接口代理,支持跨域接口代理和接口合并请求功能。

    在线文档

    安装

    当作类库使用

    在您的composer.json中加入配置:

    {    "require": {        "yurunsoft/api-agent": "1.0.*"    }}

    作为项目运行

    切换到ApiAgent目录下,执行下列命令:

    composer install

    跨域接口代理

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

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

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

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

    配置文件:Config/cross.php

    接口合并请求

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

    配置文件:Config/batch.php

    jQuery调用样例代码:

    // 设置跨域传递cookie,如果不需要可以去除$.ajaxSetup({	xhrFields: {		withCredentials: true	},});$.ajax({	// 在线演示地址,随时可能崩掉,正式使用时请改成你自己的	url: 'http://apiagent.toolapi.net/batch.php',	method: 'post',	data: JSON.stringify({		/*aip: {			url: 'ip', // 在apis中预定义的接口,传别名即可			getData: {ip: '218.4.255.255'},		},*/		aip: {			url: 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json',			getData: {ip: '218.4.255.255'}, // 这里的IP改变也会改变下面baike的结果哦		},		// weather2是错误的结果,会中断		/*weather2: {			url: 'http://www.weather.com.cn/data/sk/1010101001.html',			condition: { // 返回结果.weatherinfo不为null				value: '{$weather2.weatherinfo}',				regular: 'is not null',			},		},*/		baike: {			url: 'http://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        }    }}

    预定义验证规则

    代码含义
    is nullnull === $value
    is not nullnull !== $value
    empty array0 === count($value[0])
    not empty arraycount($value[0]) > 0
    truetrue === $value
    falsefalse === $value

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

    dataType数据类型

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

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


    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap