我已经在很多地方读过,一个宁静的网址应该用斜杠分隔名称来识别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吗?
答案 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