我有一个简单的 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/