我有一些带有一些方法的Web服务,从技术上来说,它们在客户端上没有做太多的事情。我通过jquery / ajax调用它
建议的返回类型是什么,我通常会返回JSON ...但是如果它没有返回任何东西..我会返回一个布尔值吗?即true =成功...和false =错误??
有什么想法吗?
答案 0 :(得分:3)
HTTP状态代码如何:
200 OK
500 Error
答案 1 :(得分:2)
如果它没有返回任何内容,您应该使用HTTP状态代码:
204 No Content
The server successfully processed the request, but is not returning any content.
HTTP状态代码也适用于其他用途,但请注意仅将其用于HTTP状态而非应用程序状态。
对于应用程序状态,您应该考虑使用标准JSON对象(或SOAP或XML或您正在使用的任何格式)。这也是Stack Overflow的工作方式,您可以通过在其上运行HTTP调试器来验证它:
{ "response": true, "data" : <data>, "message" : <message> }
理想情况下,response
属性应该为true或false,以保持客户端上的逻辑简单。除非发生错误,否则消息通常通常为空,在这种情况下它将包含错误消息。
就HTTP状态代码而言,它们应仅用于指示HTTP,而不是应用程序状态代码。
5xx
服务器错误500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Timeout
505 HTTP Version Not Supported
506 Variant Also Negotiates (RFC 2295 )
507 Insufficient Storage (WebDAV) (RFC 4918 )
509 Bandwidth Limit Exceeded (Apache bw/limited extension)
510 Not Extended (RFC 2774 )
200 OK
201 Created
202 Accepted
203 Non-Authoritative Information (since HTTP/1.1)
204 No Content
205 Reset Content
206 Partial Content
207 Multi-Status (WebDAV)
答案 2 :(得分:1)
您可以使用SOAP路由并以XML格式返回状态。
这几乎可以解析。
像:
<m:IsYourMethodSuccessful xmlns:m="Some-Namespace-URI”>
<return>true</return>
</m:IsYourMethodSuccessful>
这里的好处是,如果将来您决定需要添加客户端反馈,则可以返回详细的异常信息。
或者,因为你已经解析了json:
{ success : true }
{ success : false, exception : { ... } }
答案 3 :(得分:0)
我只会返回一个布尔值 - 最简单的东西可以工作。
答案 4 :(得分:0)
这取决于方法。对于更新和创建,我通常返回实体的服务器ID,以及创建或更新的时间。这有助于客户端在本地管理实体状态(如果它们正在存储它们)。