用 MiniFramework 快速构建 REST 风格的 API 接口

来源:转载

MiniFramework 是一款遵循 Apache2 开源协议发布的,支持 MVC 和 RESTful 的超轻量级 PHP 开发框架。


通过 MiniFramework 内置的 REST 接口功能,我们可以很轻松的快速构建起基于 REST 风格的 API 接口,特别是在开发 iOS 和 Android 手机客户端应用时,服务器端的 API 接口是否灵活高效,直接影响着手机应用的体验。


下面介绍一下如何使用 MiniFramework 开发 REST 风格的 API 接口。


第一步,我们下载最新 MiniFramework 1.0.2 版本


下载地址是:https://github.com/jasonweicn/MiniFramework/archive/1.0.2.zip


下载并解压缩后,会看到里面有 App 和 MiniFramework 两个目录,App 目录是一个附带的应用 demo,MiniFramework 目录是框架核心文件。


第二步,我们在 Apache 或 Nginx 中新建一个站点,并将站点的根目录指向 App/Public 这个目录。


设置好站点根目录后,我们可以测试一下,用浏览器访问下面的 URL 地址:


http://你的域名/index.php?c=index&a=index


如果可以显示“Hello World!”,说明站点已经部署成功了。


第三步,为了优化访问 URL 访问的便捷性,我们要给站点设置伪静态规则。


如果你用的是 Apache,那么附带的应用 demo 中已经提供了 .htaccess 文件,不需要额外的设置了。


如果你用的是 Nginx,那么需要在 nginx.conf 中,向对应站点的 server{} 段中,增加下面的代码:


location / {
indexindex.html index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php last;
}
}

保存后,别忘记重启 Nginx 让配置生效。


经过上述配置后,用浏览器访问下面的 URL 地址:


http://你的域名/index/index


如果可以显示“Hello World!”,那就说明伪静态也配置成功了。


第四步,创建 API 程序


找到 App/Api 目录,这里是存放 API 接口的地方,在里面已经附带了一个名为 Version.php 的 demo,你可以参考这个文件的代码,编写自己的 API,比如我们创建一个名为 User.php,里面放置 get、post、put 和 delete 四个方法,分别对应 REST 中的 GET、POST、PUT 和 DELETE 请求。代码如下:


<?php
//首先要声明当前文件的命名空间为 App/Api
namespace App/Api;
//还要引入 Mini/Rest
use Mini/Rest;
class User extends Rest //必须要继承Rest类
{
/**
* 初始化
*/
function _init()
{
//do something...
}/**
* GET
*/
function get()
{
//我们临时构建一个用户列表数组,在你的业务代码中或许应该通过模型从数据库中读取
$userlist = array(
array('id'=>1, 'name'=>'user1'),
array('id'=>2, 'name'=>'user2'),
array('id'=>2, 'name'=>'user3')
);

//将$userlist通过responseJson()方法输出为JSON
$this->responseJson(200, 'success', $userlist);
}/**
* POST
*/
function post()
{
//获取POST参数
$params = $this->params->getParams();

//do something...
}/**
* PUT
*/
function put()
{
//获取PUT参数(POST和PUT参数均可通过此方法获得)
$params = $this->params->getParams();

//do something...
}/**
* DELETE
*/
function delete()
{
//返回HTTP状态码403(在REST中表示对于拒绝访问)
$this->responseJson(403);
}
}

创建好上边的 API 后,我们可以测试一下,用浏览器访问下面的 URL 地址:


http://你的域名/api/user


此时的访问请求属于 GET 方式,MiniFramework 会将这个请求映射到我们刚刚创建的 User 类的 get() 方法上,如果一切正常,我们会看到浏览器中显示如下内容:


{"code":200,"msg":"success","data":[{"id":1,"name":"user1"},{"id":2,"name":"user2"},{"id":2,"name":"user3"}]}

上边显示的内容就是通过 responseJson() 方法输出的 JSON 字符串了,其中 code 代表这次请求服务器返回的状态代码,msg 是返回的说明,data 里面就是这次请求发出后,服务器返回给客户端的数据了。


我们可以看到,上边 User 类的代码中,在最开始要通过 namespace 来声明当前文件的命名空间,在 MiniFramework 中,默认情况下 API 接口的命名空间统一为 App/Api。


再往下还要通过 use 引入 Mini/Rest,这个是 MiniFramework 的核心类之一,我们创建的 API 接口的 class 必须要继承 Rest。


再往下就是 REST 中经典的 get、post、put 和 delete 四个方法,对于客户端请求类型的映射问题,MiniFramework 会自动帮我们处理好,我们只要专注写好业务逻辑就可以了。


阳光部落原创,更多内容请访问 http://www.sunbloger.com/

分享给朋友:
您可能感兴趣的文章:
随机阅读: