编写接口事例

<pre name="code" class="php"><pre name="code" class="php"><?php
	//接口编写
	/*
   		*	 借口数据返回
   		*	 接口文档编写
   		*	 接口安全				(安全验证)
   		*	 接口防止非法多次请求	(在一定的时间内不能多次请求接口)
 	*/
 	
   		//ID = 1 的秘钥(9314313ce277ecda040b68c80a6bc52a)

 	//接口文档
 	/*
 		接口说明:根据某个ID值,查出所有的数据,并返回数据
 		接口地址:http://www.liuyang.com/php7/port1/a.php
		支持格式:json/xml
		请求方式:get
		请求示例:http://www.liuyang.com/php7/port1/a.php?key=约定秘钥&id=传递的ID值

		请求参数说明:
		名称	类型	必填	说明
 		key		string	 是		你申请的秘钥	md5('hello word'.ID);		
 		id	    int		 是		所需要的ID
 		dtype   string   否		返回数据的格式,xml或json,默认json;

 		返回参数说明:
		名称			类型		说明
 		code			int			返回状态码
 		id				int			返回码
 		title			string		返回标题
 		content         string      返回内容

 		JSON返回示例:
   		   JSON  => url = "http://www.liuyang.com/php7/port1/a.php?areacode=123122&key=约定秘钥&id=传递的ID值";

 			[{"id":"1","title":"一文总结Keep教科书般的运营策略:怎样让用户帮你推广?","url":"\/article\/162628.html","img":"images\/14732118654422.jpg","content":"所以,杰伦、思聪的LOL现在什么水平?"}]


 		XML返回示例:
 		  XML  url = "http://www.liuyang.com/php7/port1/a.php?areacode=123122&key=约定秘钥&id=传递的ID值?&dtype=xml";
 			<news>
 				<new>
 					<id>1</id>
 					<title>一文总结Keep教科书般的运营策略:怎样让用户帮你推广?</title>
 					<url>/article/162628.html</url>
 					<content>所以,杰伦、思聪的LOL现在什么水平?</content>
 				</new>
 			</news>

		JSONP返回示例:
		   JSONP  url = "http://www.liuyang.com/php7/port1/a.php?areacode=123122&key=约定秘钥&id=传递的ID值&dtype=jsonp&callback=data";

  		[{"id":"1","title":"一文总结Keep教科书般的运营策略:怎样让用户帮你推广?","url":"\/article\/162628.html","img":"images\/14732118654422.jpg","content":"所	以,杰伦、思聪的LOL现在什么水平?"}]
 	 */
 	
 	$id = $_GET['id'];
	$key = $_GET['key'];
 	$dtype = isset($_GET['dtype']) ? $_GET['dtype'] : 'json';
 	//服务(生成接口端)生成key,并拿此生成的key和用户传递过来的key值进行对比
 	$app_key = md5('hello word'.$id);
 	// echo $app_key;die;

 	if($key != $app_key)
 	{
 		die('非法请求');
 	}

 	//生成接口
 	$pdo = new PDO('mysql:host=www.liuyang.com;dbname=test','root','root');
 	$pdo->exec('set names utf-8');
 	$sql = "SELECT * FROM huxiao WHERE id='$id'";
 	$data = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);
 	
 	if(empty($data))
  	{
		echo "您请求的数据不存在!";
		$data['success'] = 0;
    }
	else
	{
		$data['success'] = 1;
	}

 	if($dtype == 'xml')
 	{
 		header("content-type:text/xml;charset=utf-8");
 		//生成XML格式的数据
 		echo '<?xml version="1.0" encoding="utf-8"?>';
 		echo '<news>';
 			foreach($data as $val)
 			{
 				echo "<new>";
 					echo "<id>{$val['id']}</id>";
 					echo "<title>{$val['title']}</title>";
 					echo "<url>{$val['url']}</url>";
 					echo "<content>{$val['content']}</content>";
 				echo "</new>";
 			}
 		echo '</news>';
 	}
 	else if($dtype=="jsonp")
  	{
		$callback = $_GET['callback'];
		$str = json_encode($data,JSON_UNESCAPED_UNICODE);
		echo $callback."(".$str.")";
  	}
 	else
 	{
 		header("content-type:text/html;charset=utf-8");
 		//生成JSON格式的数据
 		echo json_encode($data,JSON_UNESCAPED_UNICODE);
 	}
?>





                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值