我正在为CREATE操作开发RESTful服务。在我的用例中,告诉客户端事务是成功还是失败就足够了。如果失败,我们需要发回错误代码。
是否可以仅发送这些信息而不发送xml响应或JSON响应。如果是这样,该怎么做。
我们现有5位数的错误代码,我们不会为此api更改此错误。如果这是不可能的。
JSON的响应是否优于XML响应?我们接受XML请求。 请求你的意见。
答案 0 :(得分:1)
我将假设这项服务将通过HTTP调用,因为这是大多数人在说“RESTful服务”时的意思。
一般来说,大多数人将“创建”类型功能映射到POST
方法(尽管您也可以使用PUT
)。
如果您只需要指明记录已创建,则答案为“以上都不是”(即,您根本不需要响应正文)。通常返回201 Created
并带有Location
标头,该标头指定新创建的资源的URL。从理论上讲,你也可以返回一个204 No Content
,因为除了状态代码之外你不需要传递任何东西(尽管这更适合于PUT
,否则没有办法与之通信客户端是新创建的资源的标识符。)
对于失败,如果请求消息错误(即,它是客户端的错误),通常会返回400系列错误,如果处理时发生系统错误,则会返回500系列错误(即,这是服务器的错误)。如果您需要在响应正文中传达其他信息,请考虑返回使用application/vnd.error
之类的媒体类型的响应,该响应允许您表示错误发生位置的上下文信息。