I need to write an API to check if a user name already exists in a database.
I want my server (Struts Action class instance in tomcat server) to return true
/false
.
Its something like this
checkUserName?userName=john
I want to know what is the standard way to do this?
Shall I return a JSON response with just one boolean
value ... seems like a overkill.
Shall I do something like manually setting the HTTP header to 200 or 404 (for true
/false
), but that seems to violate the actual purpose of using the headers which I believe must only be used to indicate network failures etc.
答案 0 :(得分:3)
(评论太长了。)
我认为没有任何理由不返回标准JSON响应,其中包含指示用户名是否存在的内容。 API就是这样做的:没有什么比在客户端提供有用的响应更“过分”了。
到第二点:标题执行批次而不是“指示网络问题”。 404不是网络问题,这意味着所请求的资源不存在。在您的情况下不是合适的,因为您没有请求资源:资源是checkUserName
, 存在。如果您的请求是/userByName/john
,那么如果用户不存在则404将是合适的。在这种情况下,这不是一个合适的请求,因为您不想返回用户。
401不是网络问题,这是一个身份验证问题。 302不是网络问题,而是重定向。等等。使用HTTP响应代码完全适当,如果它们匹配您的请求。