`
hulunberbus
  • 浏览: 857650 次
文章分类
社区版块
存档分类
最新评论

使用CakePHP快速建立Restful服务

 
阅读更多

RESTful是面向互联网(HTTP)的WEB服务架构。

使用CakePHP1.3,创建Restful服务非常简洁优雅。

下面以http(s)://yourhost.com/deals.format为例介绍创建过程。


1、映射HTTP请求

添加如下语句到routes.php中

/* Restful, add http mapping */
Router::mapResources('deals');

其中deals代表互联网资源,这句话会把GET, POST, PUT, DELETE 方法映射到资源的index, view(show), add(creation), edit(update), delete操做。

对于所有需要建立RESTful的资源,该方法可以反复调用。


2、解析请求格式后缀

Router::parseExtensions('json', 'xml');
CakePHP支持xml, json, rss格式的请求应答。上面的代码使CakePHP能解析出json或xml应答格式。


3、在Controller中包含相应的component和helper

public $components = array(
'RequestHandler', //这个不能缺少,否则不能把theme指向xml/json目录
);

public $helpers = array(
'Xml', //for xml
'Javascript', //for json
);


4、创建缺省布局

在你的theme(可在beforeFilter中设置$this->theme)下面的layouts中添加xml和json的缺省布局

xml/default.ctp

json/default.ctp

内容分别是


<?php

//xml

header('Content-type: application/xml');
echo $this->Xml->header();
echo $content_for_layout;
?>


<?php

//json

header("Pragma: no-cache");
header("Cache-Control: no-store, no-cache, max-age=0, must-revalidate");
header('Content-Type: text/x-json');
header("X-JSON: ".$content_for_layout);

echo $content_for_layout;
?>


5、创建视图模板

在你的theme下面添加view templates

deals/xml/index.ctp

deals/json/index.ctp

内容分别是

<deals>
<?php echo $xml->serialize($deals); ?>
</deals>


<?php echo $javascript->object($deals); ?>

其中第2个是服务器json应答的处理。这里不要奇怪,js和json本来就息息相关。


6、测试

现在访问你的RESTful服务器,输入http://yourhost.com/deals.xml(或json)

将得到一个xml或json内容的输出。如:

<?xml version="1.0" encoding="UTF-8" ?>
<deals>
	<deal id="416" slug="awardtest123" city_id="1011" region_id="" min_buyers="1" max_buyers="2" />
    <deal id="414" slug="hktest12345_02820870013164958611375" city_id="1030" region_id="" min_buyers="1" max_buyers="2" />
</deals>


by iefreer

midnight again...

分享到:
评论

相关推荐

    使用CakePHP快速打造Web站点(一)

    “使用CakePHP快速打造Web站点”系列教程向您展示如何使用CakePHP构建在线产品目录。第1部分主要介绍如何安装并运行CakePHP,以及如何构建一个简单的应用程序,以允许用户注册帐户并登录到应用程序。编者注:本系列...

    cakephp 3.0 使用总结

    一些cakephp3.0 的使用总结

    使用CakePHP快速打造Web站点(二)

    通常,在这个阶段会根据应用程序所需的功能着手编写代码。...您自己会体会到使用CakePHP的意义。MVC设计模式将应用程序分为三个不同的层,分别是数据处理、UI和逻辑。DesignPatterns:ElementsofReusab

    使用_CakePHP_快速打造_Web_站点

    本教程向您展示如何开始使用 CakePHP。您将亲历整个安装过程,然后实际编写用户注册代码。通过这些过程,您将看到使用 CakePHP 究竟可以节省多少时间。本教程将构建在线产品应用程序 Tor,它包含一个 “request ...

    CakePHP快速的PHP开发框架官方库

    CakePHP: 快速的PHP开发框架官方库

    PHP的框架之CakePHP-CakePHP教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    CakePHP php框架 v3.7.0 beta1.zip

    在cakephp.org站点的Sites in the wild页面可以看到当前使用CakePHP框架的网站列表。 CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该...

    CakePHP php框架 v3.8.5

    在cakephp.org站点的Sites in the wild页面可以看到当前使用CakePHP框架的网站列表。CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该项目...

    CakePHP php框架 v3.7.8.zip

    在cakephp.org站点的Sites in the wild页面可以看到当前使用CakePHP框架的网站列表。 CakePHP 是一个运用了诸如ActiveRecord、Association Data Mapping、Front Controller和MVC等著名设计模式的快速开发框架。该...

    cakephp--使用_CakePHP_的_Session_和_Request_Handler_组件

    cakephp--使用_CakePHP_的_Session_和_Request_Handler_组件

    PHP的框架之CakePHP-CakePHP教程终极教程

    打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;CakePHP的中文及英文教程,CHM格式;CakePHP的中文打印版教程,WORD格式,下载后可直接打印,方便的;CakePHP...

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件.zip

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...

    cakephp php-framework

    There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...

    cakephp 框架

    cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架 cakephp 框架

    CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4

    CakePHP 3.4 开发手册文档 CakePHP Cookbook Documentation Release 3.4

    CakePHP使用ajax传值

    cakphp关于ajax传值的方法,以及中文乱码,路径不正确等

    cakephp分页.docx

    cakephp分页,cakephp框架的分页的方法的文档,是cakephp框架的内容。

    Beginning CakePHP:From Novice to Professional

    Lead you from a basic setup of CakePHP to building a couple applications that will highlight CakePHPs functionality and capabilities without delving too deeply into the PHP language, but rather ...

Global site tag (gtag.js) - Google Analytics