问题
精心设计的应用程序如何处理301"永久移动"在http POST重定向到restful api?
上下文
我们正在将我们的应用程序迁移到新的数据中心,在此过程中,我们将从纯文本http'中切换它们(和其他人)。到#ssl-encrypted https'。 [物理位置数据中心当然无关紧要,但新数据中心有更严格的安全规则,因此要求https]
我们的前端(haproxy / nginx)将发送301'永久移动'
我知道"宁静的api应该是永久性的#34;但是, merde到达(那个狗屎发生法国) - 帝国崩溃,柏林墙坍塌,甲骨文收购太阳等。
问题
他们的应用程序对我们的resti api进行HTTP post调用。当前端返回http状态301'时,他们的应用程序不会重新发布'到新的URL,更新失败。
问题
答案 0 :(得分:4)
完成您的设计精心设计"在纯粹的RESTfulness"意义上的要求,客户端应该将请求重新发送到新的URI。响应代码301表示资源已移动,无法用于完成请求,因此确实没有后备位置。
如果客户端尝试重新发布,但丢失数据,那就是客户端错误。 "正确"客户端的行为因您的要求而异:它可以将重定向视为可恢复的错误情况,并透明地重新发布;它可以在指示用户更新端点时重新发布;或者它可能会失败并显示相应的错误消息。