我正在创建一个系统,要求用户使用SMS代码进行验证才能创建帐户。系统将有一个RESTful API来访问系统的其他资源,但我想知道帐户创建阶段是否适合RESTful API。我想要实现的高级序列是:
如果我要使用REST原则表达这一点,我将实现如下:
其中RegistrationItem看起来像:
class RegistrationItem
{
public string SmsCode {get;set;}
public int RegistrationId {get;set;}
public string PhoneNumber {get;set;}
}
这看起来是合理的设计还是创建帐户,RESTful API通常不会共存?我注意到我看过的大多数API(facebook,foursquare,twillio)似乎都不支持它。
答案 0 :(得分:3)
是。 Nelibur可以真正帮助您创建适当的API。
好教程:http://www.codeproject.com/Articles/712689/Building-RESTful-Message-Based-Web-Services-with-W
希望得到这个帮助;
答案 1 :(得分:0)
没有理由不能从RESTful API创建帐户。我可能会以不同的方式命名,但流程看似合理。
既然你问过,我可能会这样做:
POST /registration-requests
-> { "phoneNumber": "555-1212" }
响应会有id。如果你正在努力争取HATEOAS,那么它也应该有一个用于创建用户的URI,作为标题中的链接或作为响应的一部分。然后创建用户
POST /users
-> { "registrationId": 12345, "smsCode": 67890 }
并使其返回一个新的用户实例。如果可以从浏览器调用这些API,则应强烈考虑使用Post-Redirect-Get模式。
答案 2 :(得分:0)
REST模型获取,创建,更新和删除操作。 Register是一种创建操作。所以,是的REST是合适的 - 除非你有其他一些标准或问题。