php - 使用 CakePHP 创建 API

标签 php cakephp

我有一个简单的 CakePHP 应用程序,允许用户创建和编辑帖子。我希望在未来的某个时候将该应用程序纳入 PhoneGap。

因此,我创建了一个 API,它吐出 JSON 用于 AJAX 请求,但我感觉我做错了,因为我没有使用 REST 或做任何不同的事情,将它与其他代码区分开来 Controller 。

例如(注意:在此示例中,我遗漏了将其转换为 JSON 的部分)

class ApiController extends AppController {

    function index() {
        $posts= $this->Post->find('all');
        $this->set(compact('posts'));
    }
}

要创建一个 url,如:domain.com/api/posts/all (将创建自定义路由来实现此目的)然后我可以使用 AJAX 调用它以在我的移动应用程序中使用。

现在我的问题是使用 REST 会有什么不同?我是构建应用程序的新手,我的优势在于前端而不是后端开发,因此非常感谢任何指示和帮助。

最佳答案

在 CakePHP 中启用 REST 基本上会将正确的 HTTP 方法路由到操作。因此,GET 请求将被路由到索引或查看操作,DELETE 请求将被路由到删除操作,等等。

这为使用您的 API 的人创建了一个非常简单的端点。然后在调用此端点时,根据 HTTP 方法,Cake 会将其路由到正确的操作(请原谅任何 HTTP 请求语法错误):

// single endpoint
http://example.com/api/posts

路由到/posts/index.json 的 GET 请求

GET /api/posts.json HTTP/1.1
Host: example.com

路由到/posts/edit/1.json 的 POST 请求

POST /api/posts/1.json HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Length: 24

data[Post][name]=updated

阅读本文将回答您的大部分问题:http://book.cakephp.org/2.0/en/development/rest.html

关于php - 使用 CakePHP 创建 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11864124/

相关文章:

php - 当我在 PHP 中使用 cURL 发布文件时,我应该设置 CURLOPT_UPLOAD 吗?

mysql - 插入字段时它不会自动生成 ID cakephp3

php - 如何为可下载文件创建临时链接

php - 如何在使用 JQuery 更新 MySQL 后填充 DIV

php - 为什么 SQL 时间戳不是 UTC?

php - CakePHP:控制台命令中的自定义错误报告

php - 严格标准: is_a(): Deprecated. Please use the instanceof operator

php - 在 CakePHP 3 中将自定义 SQL 代码放在哪里?

php - 追加多维数组形成数据

php - Symfony2 在路由中使用默认语言环境(一种语言的一个 URL)