【问题标题】:Which of the following are valid URI's(Uniform Resource Identifier) as per the REST API specifications?根据 REST API 规范,以下哪些是有效的 URI(统一资源标识符)?
【发布时间】:2020-06-27 04:47:04
【问题描述】:

如何根据 REST API 规范识别以下哪个统一资源标识符 (URI) 有效。

选择一个或多个选项

1. POST https://api.example.com/whales/create/9xf3df

2. PUT https://api.example.com/whales/9xf3df

3. GET https://api.example.com/whales/9xf3df?sort=name&valid=true

4. DELETE https://api.example.com/whales 

【问题讨论】:

    标签: api rest uri


    【解决方案1】:

    REST 不关心您为资源标识符使用的拼写约定;任何符合RFC 3986 定义的生产规则的东西都是fine

    /whales/create/9xf3df
    /whales/9xf3df
    /whales/9xf3df?sort=name&valid=true
    /whales 
    
    /0cc846bb-678d-45d8-9c06-d9cf94cee0a5
    /9xf3df/whales
    

    这些都是很好标识符。

    “REST API”的标识符与网页的标识符完全一样——你可以使用任何你想要的拼写,浏览器、缓存、网络爬虫等都可以很好地使用它们;这些通用组件将标识符视为标识符 - 它们不会尝试从中提取任何含义。

    通过演示,请注意以下所有操作都完全按照您的预期工作:

    REST 是否关心上述选项的 POST、PUT、GET 和 DELETE?

    很难确定您在这里问的是哪个问题。

    PUT /dictionary/delete HTTP/1.1
    

    这是一个完全令人满意的请求行,它的含义没有歧义。在这个例子中,PUT 是method-token;这告诉服务器我们正在请求将目标资源的表示(由/dictionary/delete 标识)替换为请求的消息正文中包含的表示

    对于这个特定的资源,这可能意味着消息正文是一个 HTML 文档(我们会在标题中看到 Content-Type: text/html,以确保服务器知道如何正确解释提供的字节)。

    PATCH /dictionary/delete HTTP/1.1
    

    这也是一个令人满意的请求行;我们再次请求更改 /dictionary/delete 资源的表示,但我们将以稍微不同的方式进行处理 - 我们没有在消息正文中包含替换表示,而是提供了一个列表的表示要进行的更改(又名“补丁文档”)。

    统一的界面意味着我们应该期望www.merriam-webster.com 的人们能够完全按照我们在此处描述的那样理解这些消息。

    现在,对于这些特定资源,他们可能不希望随机堆栈溢出成员对其网站进行更改,因此他们可能会回复 403 Forbidden405 Method Not Allowed

    所有通用组件都会理解这意味着什么,因为标准化的响应元数据对所有资源都是通用的。

    【讨论】:

    • REST 是否关心上述选项的 POST、PUT、GET 和 DELETE?
    猜你喜欢
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 2011-11-30
    • 2012-04-18
    • 2021-07-26
    • 1970-01-01
    相关资源
    最近更新 更多