【发布时间】:2012-01-25 16:33:15
【问题描述】:
目标: RESTful API
问题:我所拥有的方法是否低于真正的 RESTful API,还是缺少我被告知的内容?
这是一个 3 部分的问题..
假设我有一个 PHP 项目,它的 API 以 XML 或 JSON 格式返回数据,您可以像下面这样访问 API...
server.com/article/123 | Returns ID 123 using GET
server.com/article/new | Creates a new article using POST
server.com/article/123/edit | Edits an article with the ID 123 using POST
server.com/article/123/delete | Deletes article with ID 123 using POST
1)
我还经常读到PUT 应该用于编辑对象,下面我输入了POST 这个词,因为用户会发送一个POST 到tht URI 进行删除操作,我应该在php 中使用PUT 吗?改用这样的东西?
$_PUT = array();
if($_SERVER['REQUEST_METHOD'] == 'PUT') {
parse_str(file_get_contents('php://input'), $_PUT);
}
2)
不久前我在 SO 上写的一个问题中告诉我,这类似于 RESTful API,但事实并非如此,我得到的答案是……
In short, your service is not RESTful, but it is close. Rather than specify actions (edit, delete, ...) in URL segments, you will want to make use of HTTP verbs (GET, PUT, POST, DELETE).
在阅读了无数关于该主题的文章并与我能找到的每个 API 进行比较之后,要么这个人不知道他在说什么,要么我只是不明白,我上面的示例如何不是 RESTful?
我想制作一个 RESTful API,如果需要,请帮我更正上面的示例?
3)
还假设我计划用类似这样的方式向用户返回 JSON 响应......
<?php
header('HTTP/1.1 200 OK');
header('Content-type: application/json');
$data = // my code that returns the appropriate data;
echo json_encode($data);
?>
这是将结果返回给用户的正确方法还是我遗漏了什么? 许多文章和问题都在讨论这个概念,但不像我的示例那样进入实际代码。
【问题讨论】:
标签: php rest restful-authentication