以RESTful方式检查用户名,电子邮件等的可用性

时间:2013-08-18 17:34:35

标签: rest

我最近一直试图尽可能地考虑REST,并且我发现自己因为非显而易见的路线而陷入困境。

在这种特殊情况下,我很想知道用于检查用户的用户名和电子邮件可用性的RESTful方式,或其他任何具有唯一性的方法。

我的直觉告诉我,我希望在GET/users/email上使用必需的参数执行/users/username/,或者GET /users/search/的某些内容可选emailusername的参数。如果您获得200,则usernameemail不可用;如果你得到一个404,那么就可以了。

我更喜欢第一个选项,因为它更明确,但是我并不喜欢罗伊菲尔丁的论文,因为他知道该怎么做。

这里最合理的方法是什么?

4 个答案:

答案 0 :(得分:6)

第一种方法似乎更多" RESTful"。您尝试获取特定资源(通过用户名或电子邮件)并获取它(如果存在)或获取状态消息"不可用资源"。这将是:

  • GET / users / username / johnwayne(to" get" johnwayne resource / username availability ...)

这应该产生:

  • 200:如果资源存在
  • 404:如果资源不存在

第二个似乎更像是" SOAP"类似Web服务,您可以在其中定义一个"功能" (/ users / search /)包含一些"参数" (用户名,电子邮件)......

答案 1 :(得分:1)

对于唯一字段,第一个选项非常合适(/ users / email或/ users / username /),对于非唯一字段,搜索会更合适。

答案 2 :(得分:0)

我建议你使用HEAD请求代替GET。

使用GET可能会带来安全问题。黑客可以使用组合来识别有效的用户名,因为GET会导致200或404。

答案 3 :(得分:0)

您应该尝试通过

获取包含邮件的用户列表
<groupId>com.datastax.spark</groupId>
<artifactId>spark-cassandra-connector_2.10</artifactId>
<version>1.5.0-RC1</version>

在这里你可以找到1项或0项。在第一种情况下,地址不是唯一的。在另一个 - 它的独特