RESTful API帮助,与HTTP和XML响应混淆

时间:2011-10-18 11:55:34

标签: php xml api http rest

我正在编写API并且已经从各种来源阅读教程等。对于回复,我有点困惑。我编写了一个类,它将发回HTTP头响应以及XML响应。这是正确的还是我应该使用其中一个而不是两个?另外如何检查我发送的HTTP头响应是否正确?我正在使用PHP。

我使用以下工具检查HTTP响应: http://www.seoconsultants.com/tools/check-server-headers-tool/ 表示响应是HTTP / 1.1 200 OK。但是在我的脚本中我将它设置为: 标题(HTTP / 1.1 401未经授权); 因此哪个是正确的?我该如何正确检查?出了什么问题?

非常感谢您的帮助。

5 个答案:

答案 0 :(得分:2)

Redbot http://redbot.org/将对您的HTTP响应进行非常全面的分析,以确保您符合HTTP规范。

建议您阅读有关HTTP协议的一些介绍性材料。它会让你的生活更轻松。

答案 1 :(得分:1)

在一个宁静的服务中,你使用http方法get,put,post和delete,所以http标题就在那里"包含"。这种方法调用的有效负载可以按您喜欢的方式进行格式化(它必须是现有的mimetype!),因此xml也是可能的!你必须在响应"元数据和#34;之间划分。和响应有效载荷:"元数据"是一个http标头,有效负载是你的xml字符串,所以你必须发送两个!否则,您将发送一个空响应: - )

在您的请求中,您必须定义应该将哪个数据表示(在您的情况下为xml)用于响应。看看这个image(左边的一个是宁静的)。

但是,使用框架是一个好主意,就像其他答案一样。

答案 2 :(得分:0)

你是从头开始写这个吗?如果您使用通用或流行的框架作为基础,并专注于构建您的API方法并让框架处理交付机制

http://inchoo.net/tools-frameworks/symfony2-rest/您可以谷歌搜索更多样本

答案 3 :(得分:0)

HTTP标头可以是您喜欢的任何一种 - 让客户端处理它们。客户可以使用它们来查明操作(请求)是否成功完成,服务是否可用以及其他常见的有用内容。如果标题是由协议预定义并包含有效数据或它们是由您定义的(无需验证),则标题是正确的。

XML,JSON或任何其他响应是您要告诉客户端的数据。它可能包含有关错误的详细信息,执行操作的结果等。

答案 4 :(得分:-1)

我不建议你弄乱HTTP标头响应。保持始终设置为200 OK,并在XML响应中发回所需的信息。

这样,客户端只需要担心XML响应。如果出现HTTP错误,例如403 Forbidden,则意味着这是在系统级别(服务器配置)而不是在应用程序层本身。