gpt4 book ai didi

rest - 使用 REST 实现

转载 作者:行者123 更新时间:2023-12-03 14:49:49 26 4
gpt4 key购买 nike

我浏览了一个简单的、完全 REST API 的示例,但无济于事。也检查了stackoverflow。我见过的最好的是this post .尽管如此,我仍然不明白这一点。让我们举一个众所周知的应用程序的例子:维基百科。

假设我们要为维基百科创建一个 REST API。我们期待以下动词:

GET /wiki/Article_name: obtains a specified page
DELETE /wiki/Article_name: deletes the page
POST /wiki/Article_name: creates a new page
PUT /wiki/Article_name: updates a page.

事实是:当您在浏览器中使用维基百科时,您不会使用 REST 界面来导航它。我很确定当你更新一个页面时,你永远不会使用 PUT(虽然你在技术上创建了一个页面的新修订,所以 POST 是有意义的)。同样,当您删除页面时,浏览器不会发送 DELETE。

我的问题是:
  • REST 也是“用于浏览器”的接口(interface)还是仅用于脚本?
  • 我们是否应该只通过 REST 表示的眼睛来看待 HTTP 世界?像 GET/foo/?page=bar&action=delete 这样的事情是否仍然是一个有效的观点,或者过去的可怕错误永远不会再犯?
  • Web 访问和 REST 接口(interface)应该混合还是分开?例如,假设您有一个 AddressBook 应用程序。您可以使用 GET/people/浏览地址簿,使用 GET/people/1523 可以在浏览器上获取单个人的信息,可能是一个漂亮的可打印 HTML。如果你想修改他的卡,你会(RESTfully) PUT/people/1523 ,或者改为 PUT/api/v1.0/people/1523 ?
  • 任何人都可以说服 Roy Fielding 成为人类并为一个体面的(在他看来)REST API 提供一个“5 岁的 child ”的例子,instead of complaining关于什么不是 RESTful(在他看来),以便全世界都可以遵循?
  • 最佳答案

    is REST also an interface "for the browser" or just for scripts



    两个都。事实上,浏览器实际上是 REST 客户端的一个很好的例子。它仅使用 HTTP 接口(interface)的一个子集这一事实并不违反统一接口(interface)约束。无论如何,POST 几乎是一个通配符动词。脚本在 REST 的描述中被定义为“代码下载”,是 REST 接口(interface)不可或缺的一部分。

    更新: REST 的统一接口(interface)约束并没有说“你必须使用所有可用的动词”才能成为 RESTful。它表示如果您使用动词,请使用它来执行与预期行为一致的操作。

    should we see the HTTP world exclusively through the eyes of a REST representation?



    不。REST 通常是通过 HTTP 完成的,但 HTTP 不依赖于 REST。但是,如果您正在构建 Web 应用程序,那么您应该认真考虑为您的解决方案选择 REST 架构风格。这可能不是正确的选择,但可能会。

    请求 GET /foo/?page=bar&action=delete打破了 HTTP 的规则,因此打破了统一接口(interface)的 REST 约束。但它首先破坏了 HTTP!

    更新:
    在 HTTP 规范 RFC 2616 第 9.1.1 节中,它指出:“特别是,已经建立了约定,即 GET 和 HEAD 方法不应具有执行除检索以外的操作的重要性。”使用 GET 执行删除操作肯定违反了 HTTP 规则。

    should the web access and the REST interface be intermingled or separate?



    在我看来,它们应该是一样的。事实上,XHTML 实际上是一种用于交付 UI 和 API 结果的极好格式。它是标准化的,易于解析,可以在浏览器中查看以进行调试,可以支持超媒体,可以使用微格式进行语义标记,可以使用类属性来定义微格式未涵盖的内容。你还能想要什么?

    如果你打算做一个 HTML UI,为什么同样的工作要做两次?

    Can Roy give us a simple sample?



    阅读 How to GET a cup of coffee了解 REST API 应该如何工作的文章。

    在阅读这篇文章时,请记住这个大家似乎都忘记了的重要事实:

    REST 接口(interface)应该是 易于使用 , 他们是 不容易设计 .

    关于rest - 使用 REST 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1546874/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com