适应可以“跳过”到POST的HTTP GET的正确方法?

时间:2014-10-13 15:26:51

标签: http

假设您有一个HTTP GET请求,在某些情况下可以跳过该请求。例如,假设你有:

  • GET /orders/new,可以让你选择你想要的冰淇淋味道
  • POST /orders,制作新的冰淇淋订单

通常,GET /orders/new会显示风味列表和提交按钮。但是,如果今天只有一种风格,那么您只想POST订单,以避免让用户做出无用的决定。 (我们可以想象这是一个每个人都喜欢所有口味的宇宙,所以你总是对你的独裁冰淇淋选择感到满意。)

做类似"重定向到POST"这样的事情似乎不正确。来自GET请求,因为那不是幂等的。那么,正确的做法是什么:

  • 如果有多种风味:让用户选择他们想要的口味
  • 如果只有一种风味:为他们的订单选择唯一的风味并立即下订单
  • 无论哪种方式,结束新的POST订单

1 个答案:

答案 0 :(得分:0)

这是GET永远不会导致POST。期。如果您想避免这种选择,请避免在 GET之前完全在流程中的某个位置执行GET /orders/new。也许我只想看看口味,但实际上并没有继续订购。