Trailing slash on API URLs is very, very confusing
还没有人认领这个 Issue。
评估
调研方向
首先重现针对 /api/patches/$NUMBER 和 /api/patches/$NUMBER/ 的 POST 和 PATCH 请求。比较重定向响应、方法以及最终的 patch 状态。当 API 对单个对象 URL 的行为保持一致并且已记录或修正,使更新不会悄无声息地变成 no-op 时,即可视为完成。
由索引模型根据 Issue 内容生成。
描述
@stewart-ibm was complaining that his script to update patch states via the REST API wasn't working.
His script was POSTing the update to "/api/patches/$NUMBER", and receiving an HTTP 200 in response, but no update.
I did some digging and discovered that when you access "/api/patches/$NUMBER", you get back a 301 Moved Permanently to "/api/patches/$NUMBER/" (note trailing slash). It seems that when you do a POST and get a 301 in response, the behaviour is to try a GET on the redirected URL, rather than a POST.
Once I figured this out, I tried doing a POST on the correct URL with the trailing slash, got a 405 Method Not Allowed, and quickly realised the real problem was that we should have been doing a PATCH.
For good measure, I checked what happens when you send a PATCH without the trailing slash, you get a 301, my logs seem to indicate that the subsequent request to the 301 target URL is still a PATCH, yet for some reason the state doesn't update. Not sure why.
Anyway, the trailing slash thing is really confusing and I'm not sure if it's semantically appropriate for accessing an individual object.
Thoughts?
- 主要语言
- Python
- 星标
- 317
- 派生
- 91
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
getpatchwork/patchwork 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 68/100
getpatchwork/patchwork#668 ·
-
bug web-ui
难度 2/5 1-3 小时 新手友好度 74/100
getpatchwork/patchwork#546 · 2 条评论 ·
-
难度 3/5 1-2 天 新手友好度 52/100
getpatchwork/patchwork#664 ·
-
难度 4/5 3-5 天 新手友好度 48/100
getpatchwork/patchwork#663 ·
-
难度 3/5 1-2 天 新手友好度 45/100
getpatchwork/patchwork#645 ·
查看 getpatchwork/patchwork 的全部 Issue
相似的 Issue
-
bug
难度 2/5 1-3 小时 新手友好度 90/100
learningequality/ricecooker#747 ·
-
难度 2/5 1-3 小时 新手友好度 68/100
BSData/horus-heresy-3rd-edition#3171 ·
-
enhancement
难度 2/5 1-3 小时 新手友好度 72/100
-
难度 2/5 1-3 小时 新手友好度 76/100
run-llama/llama_index#23199 ·
-
难度 2/5 1-3 小时 新手友好度 84/100
KhronosGroup/glTF-Blender-IO#2769 ·