Best practise to write a boolean API in Java Sturts 2 server?

时间:2016-04-07 10:51:48

标签: java api http server

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.

1 个答案:

答案 0 :(得分:3)

(评论太长了。)

我认为没有任何理由返回标准JSON响应,其中包含指示用户名是否存在的内容。 API就是这样做的:没有什么比在客户端提供有用的响应更“过分”了。

到第二点:标题执行批次而不是“指示网络问题”。 404不是网络问题,这意味着所请求的资源不存在。在您的情况下是合适的,因为您没有请求资源:资源checkUserName 存在。如果您的请求是/userByName/john,那么如果用户不存在则404将是合适的。在这种情况下,这不是一个合适的请求,因为您不想返回用户。

401不是网络问题,这是一个身份验证问题。 302不是网络问题,而是重定向。等等。使用HTTP响应代码完全适当,如果它们匹配您的请求。