接口--制作接口

来源:互联网 发布:投针法计算圆周率c语言 编辑:程序博客网 时间:2024/05/22 15:28
<?php
//接口数据返回
//接口文档的编写
//接口的安全
//接口防之非法多次请求

//接空文档
/*
   接口说明:跟进传递新闻分类ID,查询所有该分类下的新闻,并返回数据
   接口地址:http://127.0.0.1/7Month/lianxi/9.8day/8day.php
   支持格式:json/xml
   请求方式:get
   请求示例:http://127.0.0.1/7Month/lianxi/9.8day/8day.php?key=约定的钥匙&id=文章的id&type=返回数据格式 json/xml
   名称  类型  必填   说明
   id    int    是    文章的id
   key   string 是    双方约定的秘钥
   type  string 否    返回数据格式 json/xml 默认json

   返回数据说明
   名称   类型   说明
   title  string 文章标题
   link   string 文章表示地址
   desc   string 文章内容

 */
header('content-type:text/html;charset=utf-8;');
$id = $_GET['id'];
$key = $_GET['key'];
$type = empty($_GET['type'])?"":$_GET['type'];
$a_key = md5('word'.$id);
if ($key!=$a_key) {
    die("非法请求");
}
//数据库连接查询
$pdo = new PDO("mysql:host=localhost;dbname=think","root","root");
$pdo->exec('set names utf8');
$sql = "select * from new where id=$id";

$data = $pdo->query($sql)->fetchAll(PDO::FETCH_ASSOC);

//判断格式

if ($type=="xml"){
    header('content-type:text/xml;charset=utf-8;');
    echo '<?xml version="1.0" encoding="utf-8"?>';
    echo "<news>";
    foreach ($data as $key => $value) {
          echo "<new>";
          echo "<titl><![CDATA[".$value['title']."]]></titl>";
          echo "<titl><![CDATA[".$value['link']."]]></titl>";
          echo "<titl><![CDATA[".$value['desc']."]]></titl>";
          echo "<titl><![CDATA[".$value['img']."]]></titl>";
        echo "</new>";
    }    
    echo "</news>";
}else{
   echo json_encode($data,JSON_UNESCAPED_UNICODE);
}
 ?>
1 0