请考虑以下情形:作为用户注册您网站的后续效果,您希望POST到外部API(例如,电子邮件服务提供商),记录该用户注册的事实。
此请求作为从客户端到您的应用程序的AJAX请求异步执行。该请求反过来向外部API发出POST请求。 AJAX请求没有进一步的效果,特别是它不会改变应用程序数据库的状态。
我的问题是:AJAX请求的正确HTTP动词是什么?为什么?我咨询了HTTP spec,但无法从中提取答案。
这是一些伪Rails代码,表示具有上述属性的控制器操作:
class UsersController < ApplicationController
def ajax_esp_signup
email = User.find(params[:id]).email
response = EspApi.post_signup(email) # Send POST request to external API.
success = response['error'].nil?
render :json => {
:success => success
}
end
end
答案 0 :(得分:1)
POST。这里重要的是请求有副作用,而不是它是否对您的数据库有影响。由于外部API请求是POST,我们假设它是非幂等的,因此您也应该使用非幂等POST方法。