为什么用“?”而不是URL中的“:”?

时间:2018-05-31 06:51:54

标签: url url-design

我们可以使用

$("#ssss").on('click','li',function (){
  alert($(this).find("input").val());
});

更新数据。

有人建议我可以使用另一种方式:

'PATCH /companies/:id' : 'CompanyController.find'

但我不知道它的作用。请解释一下我们为什么在搜索路径中选择'PATCH /companies/find?key=Value' 标记而不是?标记。

4 个答案:

答案 0 :(得分:0)

您可以使用或。大多数人选择其中一个的最大原因就是他们想如何向用户呈现URL。

使用路径变量(:)可以表示您正在访问已定义的资源,例如用户ID,其中作为参数(?)可以表示您正在动态更改/搜索定义资源中的某些内容,例如令牌或搜索词。

据我所知,这是我看到的一般做法:

example.com/user/:username

example.com/user/?search="foo"

答案 1 :(得分:0)

http://en.wikipedia.org/wiki/URL

如果我们发出GET请求,? symbol用于让服务器知道url参数变量从那里开始。这是常用的。我没用过:符号而不是?

答案 2 :(得分:0)

你可能搞砸了事情:

答案 3 :(得分:-2)

设计休息api的规则 你可以找到'如何设计休息api'

假设下面的代码是Sails.js

'PATCH /companies/:id' : 'CompanyController.find'

它将使REST API映射到' CompanyController.find'通过使用PathParam。喜欢这个

www.example.com/companies/100

第二个将使用QueryParam生成REST API 它也会映射到' CompanyController.find'

/companies/find?key=Value

但API格式不同。喜欢这个

www.example.com/companies/find?key=100

PathParam或QueryParam可以制作REST API。
如果密钥是公司实体的主要密钥, 我认为PathParam比QueryParam更合适。