gpt4 book ai didi

html - 如何以 REST 方式发送 HTML 表单?

转载 作者:可可西里 更新时间:2023-11-01 14:58:43 25 4
gpt4 key购买 nike

我有一个名为“事实”的资源集合的 URI,以及该集合中每个“事实”资源的 URI。

创建新“事实”的表单应该使用 GET 请求,我相信,但我无法决定应该将它制作成什么 URI。

对集合 URI 的 GET 应该返回“事实”资源 URI 的列表。每个“事实”URI 都应返回其内容作为对 GET 的响应。当然,实际的“事实”创建将是 POST(或 PUT,视情况而定)。

我看到了几个选项,但没有一个令人满意:

  1. 添加“事实”URI 将引用的“事实形式”URI。对此 URI 的 GET 提供 HTML 表单。仅仅为了描述一种资源而拥有另一种资源似乎是错误的。
  2. 在标题中不包含任何表单数据的情况下对“事实”URI 进行的 POST 将返回该表单。然后在用户填写表单后,它将使用表单数据进行 POST,并创建新的“事实”资源。这似乎是一种更糟糕的方法。
  3. 不要通过网络发送表单,而是将其作为 API 的一部分包含在内。这似乎是 RESTful,因为 REST API 应该描述媒体类型,并且可以根据“事实”类型的描述来制作表单。这实现起来很奇怪。也许 REST 服务与常规网站是分开的,因此实际的 HTML 表单请求位于与 REST API 不同的某个 URI。
  4. 将 HTML 表单作为“事实”URI 响应的一部分。

澄清一下,我正在尝试遵循 Roy Fielding 指定的真正 REST 架构,而不是冒充 REST 的半生不熟的 RPC。

编辑:我开始认为 #3 是有道理的。

edit2:我认为一个解决方案是以 CRUD 方式进行常规的非 REST HTML 导航,然后前端根据需要进行 AJAX REST 调用(或者后端对其 REST API 进行内部调用)。

我需要正确执行此服务的 REST 部分的原因是我希望以后允许其他非 HTML 客户端与其交互。

最佳答案

在我看来,唯一干净的 RESTful 答案是 1 和 3。

在我看来,资源的描述是它自己的资源。问题是您是想让这个资源可以通过应用程序的 API 访问,还是想让它成为 API 本身的一部分。

对于 1,似乎 RESTful 使 URI 像这样:

GET/facts -> 所有事实GET/facts/1 -> 返回事实 1(显然 id 可能是一个词或其他东西)GET/facts/create -> 返回适合创建事实的形式POST/facts -> 添加一个事实

关于html - 如何以 REST 方式发送 HTML 表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1246061/

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