RESTFUL API URL 特殊字符的问题

2019-06-16 11:07:27 +08:00
 dunhanson

GET 请求,RESTFUL 风格是 https://XXX.test.com/v1/files/{id}

这个 id 我不是真正的 id,我要放的是一个路径参数,比如:file/hello.txt

我尝试过用,URL 编码+BASE64,但是还是会遇到最后的编码会出现特殊字符的情况

还是说取消{id}这个参数,直接把 “ file/hello.txt ”

改成 https://XXX.test.com/v1/files?id=file/hello.txt

3999 次点击
所在节点    程序员
24 条回复
dunhanson
2019-06-17 09:12:33 +08:00
@JamesMackerel 嗯 之前有搜到过这类文章
index90
2019-06-17 10:33:47 +08:00
直接: https://XXX.test.com/v1/files/{filepath}
有什么问题?
最多就是用不了框架的匹配取出来罢了,但是你可以直接操作 URL 啊。本来文件路径又是 URL 的一种。
dunhanson
2019-06-17 11:50:12 +08:00
@index90 有缘了,之前我也是这个头像
ggicci
2019-06-17 14:59:20 +08:00
第一:RESTful 请保持使用 `/v1/files/{id}`,而不建议使用 `/v1/files?id=xxx`,如果不清楚为什么,请仔细阅读 RESTful 规范。

第二:路径中的 `{id}` 内容需要编码,类似于 `urlencode` 之类的函数,但是更推荐使用 URL 处理库处理一整个 URL 对象。

第三:除非极其简单的 URL 字符串拼接,否则**一定**使用 URL 处理库来处理 URL,且遵循 URL 处理步骤:解码 -> 处理 -> 编码。各种 URL 处理库怎么使用请参考相应的文档。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/574385

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX