gpt4 book ai didi

json - 什么是 "representation"、 "state"和 "transfer"在具象状态传输 (REST) 中?

转载 作者:行者123 更新时间:2023-12-05 00:13:50 25 4
gpt4 key购买 nike

我遇到了一些关于 REST 的资源,但我无法清楚地理解事情。如果有人可以就我下面的示例进行解释,那将对我有所帮助。

我有一个名为 User 的表
User表格内容

id name
1 xxx

我将调用的 URL 是 /test/1
结果将采用 JSON 格式,例如: { 1: "xxx" }
到目前为止我对 REST 的理解:
  • 资源 - 用户表内容
  • 代表 - 表/JSON
  • 状态转移 - 以表格形式将数据转换为 JSON。

  • 请让我知道我的理解是否正确。
    否则,请回答以下问题:
  • 在我的示例中,什么是资源?
  • 在我的示例中,什么是表示?
  • 什么是状态转移或在我的示例中何时发生?
  • 最佳答案

    REST 是关于通过它们在客户端和服务器之间的无状态通信之上的表示来操纵资源状态的。它是一种独立于协议(protocol)的架构风格,但在实践中,它通常在 HTTP 协议(protocol)之上实现。

    在设计基于 HTTP 的 REST 时,使用 URL 来定位资源,使用 HTTP 方法来表达对资源的操作,并使用 JSON 和/或 XML 文档等表示来表示资源的状态。 HTTP header 可用于交换有关请求和响应的一些元数据,而 HTTP 状态代码用于通知客户端有关操作的状态。

    What is a resource in my example?



    将资源理解为用户的概念。不要考虑数据库中的表,考虑用户及其属性集的抽象。

    What is a representation in my example?



    JSON 文档可用于表示特定资源的状态。一个资源可以有许多表示,例如 JSON 和/或 XML 文档,客户端可以使用内容协商来请求同一资源的不同表示。

    What is a state transfer or when does this happens in my example?



    可以使用表示来检索和操作给定资源的状态。

    一个 GET例如,请求允许您检索在响应负载中发送的资源状态的表示。一个 PUT例如,请求允许您将资源的状态替换为请求有效负载中包含的表示所定义的状态。

    例子

    考虑一个用户资源,其属性如 id 和 name 以某种方式存储在您的服务器中:
  • 编号:1
  • 姓名:约翰·多伊

  • 这些细节构成了资源的状态。

    一个 URL,例如 /users/1可用于定位服务器中的资源。
    GET 等请求, PUTDELETE可以针对此 URL 执行以使用表示形式(例如 JSON 和/或 XML 文档)检索/操作资源的状态(可以根据您的需要支持其他表示形式):

    {
    "id": 1,
    "name": "John Doe"
    }

    <user>
    <id>1</id>
    <name>John Doe</name>
    </user>

    上面显示的文档不是资源本身。它们只是表示资源的一种方式。它以某种方式存储在您的服务器中。

    关于json - 什么是 "representation"、 "state"和 "transfer"在具象状态传输 (REST) 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48116321/

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