如果"?"是否可以包含一个宁静的URL?符号?

时间:2015-07-28 04:48:26

标签: facebook api rest twitter

我已经在很多地方读过,一个宁静的网址应该用斜杠分隔名称来识别rresources,如下所示

http://www.example.com/customers/33245/orders
http://www.example.com/customers/33245/orders/8769/lineitems 
Twitter声称它有一个安静的api.But的一些api url包含"?"。

 https://api.twitter.com/1.1/search/tweets.json?q=%40twitterapi
甚至facebook api urls都有"?"。这些apis可以称为宁静的apis吗?

3 个答案:

答案 0 :(得分:1)

是的,restful地址是可能包含查询参数的URI。有最好的做法,但没有什么说宁静的API可能没有'?'

答案 1 :(得分:1)

包含查询字符串的URL(“?”以及后面的所有内容)与API是否为restful无关。查询字符串是URL的一部分,用于定义此媒体类型的资源。资源的标识符是在查询字符串中还是在URL的路径中无关紧要。

根据Roy Fielding的dissertation on the REST architecture的定义,很少有API是宁静的。罗伊甚至在2008年提出了一个问题,blog article解决了最严重的违法行为。

有一种审美和搜索引擎优化的关注,而不是一种优先于另一种。但这两种方式都可以让人感到安宁。

答案 2 :(得分:1)

通常,用于直接识别资源的参数表示为由/

分隔的路径参数
http://www.example.com/customers/33245/orders
http://www.example.com/customers/33245/orders/8769/lineitems 

如果资源可能以多种方式显示,例如语言,可以将语言表示为查询参数:

http://www.example.com/customers/33245/orders?lang=fr