在网络服务中将/cars/id/toyota
与/cars?id=toyota
的查询参数传递有什么区别?
是一个REST与其他Web服务类型吗?
答案 0 :(得分:1)
以Url或查询字符串的形式传递Rest服务中的参数,两者具有不同的意义。 简单来说就是
/cars/id/toyota
是可变的,您的服务期待id/{variablename}
之后的某些内容,否则会给出错误(找不到端点)。所以在这种情况下你的变量是强制性的。
/cars?id=toyota
在这种情况下,您的查询字符串(Id)将成为可选项。
因此,只要您想使该变量可选,就使用查询字符串。 :)
答案 1 :(得分:0)
没有,显然 - 这完全取决于消费服务期望检索参数的方式。
答案 2 :(得分:0)
这取决于接收方(您的Web服务器和您在该Web服务上使用的框架)。根据您的实现,这两者或两者都不可能是REST Web服务。
从概念上讲,区别在于来自Web服务器根目录(/
)和参数的路径:
/cars/id/toyota
是指向不含参数的路径/cars/id/toyota
的网址
/cars?id=toyota
是路径/cars
的网址,其参数名为id
,其值为toyota