在开发APP、小程序等应用过程中,经常需要以API接口形式请求网站数据,以下为JSON数据输出的一个开发示例。
建立api/json/demo.php,代码如下:
<?php require '../../common.inc.php'; $lists = array(); $result = $db->query("SELECT itemid,title FROM {$DT_PRE}webpage ORDER BY listorder"); while($r = $db->fetch_array($result)) { $lists[] = $r; } echo json_encode($lists); ?>
基本流程是先引入系统框架,然后将数据库里的数据查询出来,保存到数组,通过json_encode函数将数组转换为JSON格式数据输出。
实际开发过程可以根据实际需要,传递不同的参数,改变SQL语句来实现不同数据的输出。
通过浏览器访问 网站地址/api/json/demo.php 调试无误之后,在应用中请求此地址即可获取相应的数据。
自V8.0版本,api/json/demo.php已经默认创建,可以参考此文件创建更多不同的文件对应不同的功能需求。
为了访问入口的统一,V8.0同时提供了api/json.php文件,可以通过传递文件名参数 api/json.php?file=demo 来访问 api/json/demo.inc.php
api/json.php代码如下:
<?php require '../common.inc.php'; require DT_ROOT.'/include/post.func.php'; (isset($file) && check_name($file)) or $file = 'demo'; @include DT_ROOT.'/api/json/'.$file.'.inc.php'; ?>
api/json/demo.inc.php代码如下:
<?php defined('IN_DESTOON') or exit('Access Denied'); $lists = array(); $result = $db->query("SELECT itemid,title FROM {$DT_PRE}webpage ORDER BY listorder"); while($r = $db->fetch_array($result)) { $lists[] = $r; } echo json_encode($lists); ?>
例如需要调用新闻数据,可以使用如下两种方法实现:
一、创建 api/json/news.php ,参考 api/json/demo.php 编写逻辑,通过 网站地址/api/json/news.php 访问
二、创建 api/json/news.inc.php ,参考 api/json/demo.inc.php 编写逻辑,通过 网站地址/api/json.php?file=news 访问
建议使用第二种方式进行开发,如果需要对访问进行认证,数据进行加密等可以直接在api/json.php中统一处理。