我在这里看到了几个问题,例如如何调试RESTful服务,其中提到:
不幸的是,相同的浏览器不允许我测试HTTP PUT,DELETE,甚至在某种程度上测试HTTP POST.
我也听说过浏览器只支持GET和POST,来自其他一些来源:
但是,Firefox中的一些快速测试显示发送PUT和DELETE请求按预期工作 - XMLHttpRequest成功完成,并且请求以正确的方法显示在服务器日志中.我是否缺少某些方面,例如跨浏览器兼容性或非明显的限制?
当与请求一起发送时,查询字符串参数是否在HTTPS中加密?
我需要帮助来创建REST端点.有几个活动:
要更改电子邮件,需要3个URL请求:
/ changeemail:这里一次性密码(OTP)被发送到用户的手机
/ users/email:用户从上一步发送一次性密码,系统将电子邮件发送给新用户点击电子邮件激活链接
/ activateemail:用户单击新电子邮件收件箱中的链接,服务器更新新电子邮件
要更改密码:
同样,还有其他端点可以更改配置文件(字段包括bday,名字和姓氏)
在线阅读后我相信我的系统只users作为资源 - >所以更新属性我正在考虑使用单个PATCH更改电子邮件和更改密码以及操作字段之类的东西,所以上面两个功能看起来像:
要更改电子邮件:
更改密码:
我将只有一个端点用于上述所有操作(在nodejs中):
app.patch('/users', function (req, res) {
// depending upon the operation I delegate it to the respective method
if (req.body.operation === 'sendOTPForEmailChange') {
callMethodA();
} else if (req.body.operation === 'sendEmailActivationLink') {
callMethodB();
} else if (req.body.operation === 'activateEmail') {
callMethodC();
} else if (req.body.operation === 'changePassword') {
callMethodC();
} else sendReplyError();
});
Run Code Online (Sandbox Code Playgroud)
这听起来不错吗?如果没有,有人可以帮我组建changeemail和changepassword的端点.
答案:
我最终决定在HTTP Request …
简单的问题:如果我不是通过HTTP POST/PUT方法在我的资源上发送数据(内容)怎么办?它仍然是RESTful吗?
显然,问题是我想在没有数据的情况下使用PUT.想象一下想要重置密码的用户(就像在这个较旧的主题中一样).
你怎么看呢?可以不用POST/PUT方法发送内容吗?就个人而言,我没有任何问题,但我只是好奇其他人会怎么说.