如何在REST服务中发送响应代码。

时间:2013-11-22 20:57:04

标签: rest axis

我正在为CREATE操作开发RESTful服务。在我的用例中,告诉客户端事务是成功还是失败就足够了。如果失败,我们需要发回错误代码。

是否可以仅发送这些信息而不发送xml响应或JSON响应。如果是这样,该怎么做。

我们现有5位数的错误代码,我们不会为此api更改此错误。如果这是不可能的。

JSON的响应是否优于XML响应?我们接受XML请求。 请求你的意见。

1 个答案:

答案 0 :(得分:1)

我将假设这项服务将通过HTTP调用,因为这是大多数人在说“RESTful服务”时的意思。

一般来说,大多数人将“创建”类型功能映射到POST方法(尽管您也可以使用PUT)。

如果您只需要指明记录已创建,则答案为“以上都不是”(即,您根本不需要响应正文)。通常返回201 Created并带有Location标头,该标头指定新创建的资源的URL。从理论上讲,你也可以返回一个204 No Content,因为除了状态代码之外你不需要传递任何东西(尽管这更适合于PUT,否则没有办法与之通信客户端是新创建的资源的标识符。)

对于失败,如果请求消息错误(即,它是客户端的错误),通常会返回400系列错误,如果处理时发生系统错误,则会返回500系列错误(即,这是服务器的错误)。如果您需要在响应正文中传达其他信息,请考虑返回使用application/vnd.error之类的媒体类型的响应,该响应允许您表示错误发生位置的上下文信息。