按规范,比如请求用户列表,应该是
/api/users
那对于 /api/users/ 这种请求应该直接 404 还是等同 /api/users 处理?
1
v1024 2016-02-22 12:32:22 +08:00
标准的话,应该不处理结尾的 / ,因为 / 代表目录,隐含意思是 /index.htm 。
|
2
Jafee 2016-02-22 12:34:28 +08:00
|
3
dacapoday 2016-02-22 12:34:52 +08:00
直接返回一套字符串 显示 接口的说明,格式,使用方法?
或者该 API 的运行状态? |
4
dacapoday 2016-02-22 12:37:15 +08:00
错了错了,我以为是根目录,无视上条
|
5
learnshare 2016-02-22 12:59:39 +08:00
#1 的观点是对的,加了 / 代表这个目录,默认是 /index.html
|
6
timonwong 2016-02-22 13:16:45 +08:00
对于 1 楼的观点,也有另外一种解释
因为请求列表是一个 LIST 行为,对于 LIST 行为,应该按照目录处理,所以就应该是 GET /api/users/ |
7
lhbc OP @v1024
@learnshare @timonwong GET /api/users/ 这个操作应该没问题 不过对 /api/users/ 进行 POST(添加用户) 好像有点怪怪的 Restful 里好像没定义目录的概念,所有想弄清楚规范里是建议怎么处理的 搜索 restful directory, restful "last splash" 都没找到相关内容 @Jafee 这篇文章是对应浏览器和蜘蛛 Restful 应该不太一样 |
8
dorentus 2016-02-22 14:02:49 +08:00
|
11
learnshare 2016-02-22 15:32:28 +08:00
@lhbc RESTful 也是基于 HTTP ,参考 HTTP 协议的实现就好了
|
12
carlding 2016-02-22 18:00:25 +08:00
在 chrome 输入 www.baidu.com ,等进入网页后你把 url 复制粘贴到文本会发现自动多加了一个'/',所以还是等同处理吧。
这个'/'有无大部分人应该都会忽略吧。 毕竟不能将'/'后面认为是一个空字符串吧。 |
13
qq529633582 2016-02-22 18:49:28 +08:00 via iPhone
@carlding 这个只有根目录才会的
|
14
aprikyblue 2016-02-22 19:08:04 +08:00
@carlding
只有根目录+1 , 根目录是 /,为空就不太科学了吧。。 以前看某些文章貌似说一些 http server 会把 http[s]://host 给 301 到 http[s]://host/ (当然前提是 client 发出了这种请求),没验证过 另外对 LZ 问题,我赞同 6L |
15
jybox 2016-02-22 19:50:02 +08:00
我想提一种情况,比如有两个 API : DELETE /users 和 DELETE /users/:name ,分别是删除所有用户和删除指定用户。如果在调用后者时忘记加 name ,就变成了 DELETE /users/,我觉得最好还是不要当作前者,而是直接报错好一些。
|
18
julyclyde 2016-02-22 22:28:45 +08:00 via iPad
@aprikyblue 发不出这种请求。你看看 http 请求行的格式
|
19
aprikyblue 2016-02-22 23:02:17 +08:00
|
20
dalang 2016-02-23 10:29:56 +08:00
我自己写得 rest api , /api/users/ 这种请求是直接 404 处理。
|