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


RESTful API help, confused with HTTP and XML responses

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

我使用了以下工具检查HTTP响应:http://www.seoconsultants.com/tools/check-server-headers-tool/它说响应是HTTP/1.1 200 OK。然而,在我的脚本中,我把它设置为:headers (HTTP/1.1 401未授权);那么哪一个是正确的呢?我怎样才能正确地检查呢?你知道哪里出了问题吗?

非常感谢您的帮助。

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

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

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

在您的请求中,您必须定义响应应使用哪种数据表示(在您的示例中是xml)。看一下这张图片(左边的是restful)。

但是不管怎样,使用框架是一个好主意,就像其他答案所说的。

你是从头开始写的吗?如果你使用一个通用的或流行的框架作为基础,并集中精力构建你的API方法,让框架处理交付机制

http://inchoo.net/tools-frameworks/symfony2-rest/你可以谷歌更多的例子

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

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

我不建议您乱搞HTTP报头响应。始终将其设置为200ok,并在XML响应中发回所需的信息。

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