在 URL 中使用查询参数是否被视为"RESTFUL"?



浏览了stackoverflow上的几个帖子后,我仍然不太了解URL中使用查询参数是否被认为是静止的。例如,给定一个地址http://www.example.com/product.php?productid=123。这是一个宁静的设计吗?我的直觉说,这是因为它等同于向服务器发送HTTP获取请求以从数据库中获取相应的数据。

如果这是一个宁静的设计,我的第二个问题是,只有我们只使用此"查询参数"样式,我们才能实现HTTP?例如,我们永远无法通过将URL与查询参数?productID=123一起使用HTTP POST请求,对吗?谢谢。

路径参数和查询参数应在不同的方案中使用:

路径参数:

尝试通过ID访问资源时,应该使用它。例如

example/products/123456

上方您正在获得ID 123456的产品。

如果您有子资源,例如:

example/products/123456/comments/1324

上方,您将ID 1324的评论带入ID 123456的产品中。

查询参数:

尝试使用与ID不同的过滤器查询资源时,应该使用它。例如:

example/products?kind=food

上面您正在获取它们善良食物的所有产品。

如果您有更多的过滤器,例如:

example/products?kind=food&priceLessThan=1200

上方,您正在获取它们善良的食物和价格的所有产品少于1200。您应该考虑到查询参数不需要将字段匹配到产品资源中,在这种情况下,价格是字段进入产品,而不是Pricelessthan,此名称只是过滤资源的逻辑。

此外,您可以这样排序和小屋:

example/products?kind=food&priceLessThan=1200&sortBy=name&page=10

如您所见,查询参数更灵活,因此,我们应该将其用于过滤。

发表查询参数:

您可以使用它,但是,这应该很奇怪。POST方法用于创建新资源并进入请求主体,您可以将创建它(例如JSON或XML(创建所需的所有信息。

我创建资源时您需要一些元数据,建议使用请求标题。

a(您可以使用查询参数。您可以使用路径段。或者您可以两者都使用。您的选择。

b(是的,您可以使用查询参数发布到URI。

相关内容

  • 没有找到相关文章

最新更新