【问题标题】:Difference between operators in a URLURL中运算符之间的区别
【发布时间】:2019-12-19 00:05:12
【问题描述】:

在 URL 中使用 :? 有什么区别?例如 /products/:id/products?id=1?我正在尝试从Product.findById (req.params.id) 这样的 URL 中获取值,但我想知道哪个最合适。我知道使用 我必须使用 req.params req.query 但我不明白它们之间的区别,它们是否相同?

【问题讨论】:

    标签: node.js express http url mongoose


    【解决方案1】:

    在我看来,如果你使用的是 RESTFUL API 模式,那就完全不同了

    /products/:id调用路径参数

    路径参数决定了您请求的资源。可以把它想象成一个自动应答机,它要求您按 1 进行服务,按 2 获得另一项服务,3 获得另一项服务,依此类推。 路径参数是端点本身的一部分,不是可选的

    但查询参数

    从技术上讲,查询参数不是 REST 架构的一部分,它们用于帮助您完全了解如何阅读和使用 API 的查询参数,让您可以选择使用键值对修改您的请求。

    【讨论】:

      【解决方案2】:

      在查询中包含您的参数在概念上对于路由器来说是可选的,查询参数更多是请求本身的属性和描述,就像说 GET /users?sort=asc 时一样,在这种情况下, sort 属性更多是对请求的描述,并且请求可以在没有它的情况下完成提取,但情况可能并非总是如此,但查询参数仍然描述其请求,即使它是强制性的.

      另一方面,URL 参数是请求本身的一部分,没有参数的 URL 没有意义,例如 GET /users/:userID,在这种情况下,不提供 userID 将提供意外数据(例如用户列表)。 URL 参数在定义请求时发挥作用,而不仅仅是描述它,它们不能是可选的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-24
        • 2016-05-18
        • 2011-10-22
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 2010-12-30
        • 2013-04-26
        相关资源
        最近更新 更多