gpt4 book ai didi

rest - 使用层次结构对 REST 建模

转载 作者:行者123 更新时间:2023-12-02 02:37:59 26 4
gpt4 key购买 nike

一个模型资源是如何分层的?例如假设一个人有一个“留言板”并且“消息”是一种资源。假设“消息”可以有回复,从而形成一个讨论线程。如何模拟线程的概念?

“消息”是否包含它的子项? “线程”是它自己的资源吗?最后,什么样的 REST URI 会在这种情况下起作用?

最佳答案

如果您认为对消息的所有回复也是消息,我会给每个回复一个 ID 并使用这些 URI:

#message {id}  (only the message, no replies)
/messages/{id}

#replies to the {id} message (a list of the id's of the replies)
/messages/{id}/replies

要创建新消息,请向 uri 发送消息

 /messages

要创建对消息 {id} 的回复,请发帖至

/messages/{id}/replies

更新

我会在这里修改我之前的回答。希望这次采用正确的 Restful 风格。

您有一个入口点 uri,我们称它为{messages}。

GET {messages} -> 所有消息的 uri 列表,{message1}、{message2} 等。

GET {message1} -> 响应 message1 文档,例如在 xml 中它可以是:

<message responses="{link to message1 responses}">
<date>...</date>
<body>...</body>
</message>

{link to message1 responses} 是客户端获取响应 uri 列表必须遵循的链接。

例如,如果一条消息是对另一条消息的回应,它将包括在他的内容中

<message responses="{link to message1 responses}" inResponseTo="{uri}" >
<date>...</date>
<body>...</body>
</message>

现在要添加新消息,只需将其发布到原始 {messages} uri。如果该消息是对其他消息的响应,只需将其包含在其内容中(请注意,这是对您将回复发布到特殊 uri 的初始答案的有效更改)。

要修改某些消息,请对其 uri 执行 PUT。

所有的 uris 都可以跟在答案第一部分的后面,但这不是必需的。

关于rest - 使用层次结构对 REST 建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/467225/

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