我有一个API方法,当首次登录时该用户还不存在时,认证服务器将允许自动注册。
身份验证服务器将呼叫:
PUT https://some-api/api/v1/auth/users
此方法的处理程序将检查用户是否已经存在,并在用户不基于电子邮件时创建它。我的问题是,在URL中未预先指定ID是否存在本质上的问题。问题是实际上,当用户不存在时,还没有userId。我知道通常的格式是:
PUT https://some-api/api/v1/auth/users/:userId
显然,客户端可以基于预先的电子邮件来检查用户是否存在,可以创建POST请求来创建用户,或者如果该用户已经存在,则可以获取。这会引入更多的网络请求,因此我宁愿避免这种情况。
我注意到,有一些通用的解决方案可以使用'电子邮件'作为资源标识符。
这对我有用。有一句话是,我不特别喜欢在URL中使用电子邮件地址,但就我而言,这是可以的,因为此URL仅在群集中可见,并且不暴露于外部网络。