我不是这方面的专家所以请告诉我,如果我离开了:)
我正在尝试定义处理帐户的REST服务。
/Accounts/32 (GET to fetch one)
/Accounts (GET to fetch all)
等等......
但是,在注册过程中,在创建帐户之前,我想在创建帐户之前验证几个字段,如电子邮件和ssn,async。
我应该怎么做?我只是想知道它们是否存在于一个组合中但我不应该获得资源,因为它不属于我的业务。 :)
做这样的事情有效吗?
/Accounts?ssn=123&email=a@email.com&operation=verifyexistance
由于
// Johan
答案 0 :(得分:4)
有趣的问题,对我来说,我更愿意做以下事情:
HEAD /accounts?ssn=123&email=a@email.com
如果响应状态代码为200,则服务器上存在资源 如果响应状态代码为404,则资源不可用,您可以继续注册
HEAD方法与GET相同,只是服务器不能在响应中返回消息体。
答案 1 :(得分:2)
我喜欢Anas Salman的回答,建议使用HEAD
。这是理想的方法。
但我也认为GET
完全没问题。您正在请求获取有关资源的信息(/ accounts集合)。
GET /accounts?ssn=123&email=a@example.org
当/ accounts以此格式查看请求时(提供了SSN和电子邮件地址的GET
请求),它有足够的信息知道是否给出了肯定或否定的适当回应。
在查询字符串中添加“operation”动词是示例中唯一的unRESTFUL部分。