【问题标题】:What's the difference between an API like /api?some=param or /api/?some=param/api?some=param 或 /api/?some=param 之类的 API 有什么区别
【发布时间】:2017-09-08 15:56:34
【问题描述】:

我刚刚看到了这个网址:

https://browser.pipe.aria.microsoft.com/Collector/3.0/?qsp=true&content-type=application...

但我以前也见过这样的网址:

http://some.website.com/api/verb?param=1&param=2...

它们之间有什么区别?只是化妆品?

【问题讨论】:

    标签: http url


    【解决方案1】:

    取决于使用的技术(WEB api,MVC api,...),以及开发者如何编码,它背后的代码肯定不一样

    【讨论】:

      【解决方案2】:

      “它们之间有什么区别?只是化妆品?”

      从语义上讲,它们表示 2 种不同的资源,而且不是装饰性的。

      /api?some=param 表示资源/api,而/api/?some=param 表示资源组/api/。当收到对资源组/api/的请求时,Web服务器可能会决定返回:

      • 资源组的默认资源,如/api/index.html/api/index.jsp
      • 拒绝请求并返回错误。 requestb.in 使用此策略。如果创建了 URL 端点(例如 https://requestb.in/1hl8k4u1),GET https://requestb.in/1hl8k4u1 将返回 ok,但 GET https://requestb.in/1hl8k4u1/ 将返回 404 Not Found
      • 将资源组作为单个资源实体,即将/api/作为/apiExpress.js 使用此策略。在 Express.js 中,router.get('/api/', ...)router.get('/api', ...) 是一回事。

      【讨论】:

        猜你喜欢
        • 2010-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多