REST GET带有参数的动词

msl*_*lot 10 rest get parameter-passing

我正和其他队友一起阅读一些REST,我们正在编写一个RoR应用程序,它将向世界其他地方展示它的一些功能.

我在这个团队的任务是创建一个公开期刊报告的资源.如果你打电话

http://root.com/journalreports

你应该从服务中获得所有的期刊报道.这就像一个魅力,但我很困惑如何正确地制作一个暴露一系列期刊的资源.我应该这样做吗?

http://root.com/journalreports?range=1/2/2010;5/2/2010

或者当我们谈论REST因为?range =干扰时这是非法的吗?

为REST提供一些参数的最合适方法是什么?

man*_*ana 15

参数完全没问题,特别是对于像你的情况一样的搜索资源(查询一组期刊).

最近回答了类似的问题(路径与参数)


Bru*_*uno 6

REST不会以任何方式使查询参数"非法".它是一种架构风格,主要是通过交换表示来驱动应用程序.考虑到URI的意思是不透明的,有没有真正的区别http://example.com/page/1,并http://example/?page=1举例来说,就REST而言(它最终取决于所发送的交涉,但选择或URI风格往往是一个实现细节).

重要的是客户如何了解报告的URI.HTML可以很好地处理表单和查询参数.无论您的服务是针对浏览器使用还是其他代理都无关紧要,您可以使用相同的原则.如果您希望它更灵活或通过首页上的显式链接,您可以拥有HTML表单(或等效,如果您的客户端不是浏览器).(您可能会发现将范围拆分为两个参数更容易,例如"from"和"to",如果您希望它更具动态性.)