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

2024-04-30

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

我相信,创建新“事实”的表单应该使用 GET 来请求,但我无法确定应该将其设置为哪个 URI。

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

我看到了一些选择,但似乎没有一个令人满意:

  1. 添加“事实”URI 将引用的“事实形式”URI。对此 URI 的 GET 给出 HTML 表单。仅仅为了描述资源而使用另一个资源似乎是错误的。
  2. 对“facts”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 -> 添加一个事实

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何以 REST方式发送 HTML 表单? 的相关文章

  • PHP 文件上传帮助

    div align center div 这是我的代码
  • HTML:选择多个文件但未显示文件名?

    我使用 多个 标签让用户选择多个文件进行上传
  • 如何修复 IE6 上的不透明度

    如何修复 IE6 上的不透明度 此代码不适用于 IE6 filter alpha opacity 50 moz opacity 0 5 khtml opacity 0 5 opacity 0 5 还有这段代码 description ani
  • 选中复选框时如何向文本区域添加值

    我正在使用我刚刚在 SO 上找到的以下函数 该函数可以解决我的问题 只有一个问题是 我有一长串选择列表 当用户选中超过 3 4 个复选框时 某些文本或添加到文本区域的值不再可见 有没有什么方法可以让每次选中一个框时添加到文本区域的文本始终可
  • 简单的html css块结构,不能对内容div使用-headerHeight底部边距来避免滚动条吗?

    以下是我的简单 html css 结构
  • 在 .Net 应用程序中使用 Active Directory Web 服务

    我正在尝试构建一个 Net 应用程序来询问 Active Directory 编辑 我需要使用 Web 服务来执行此操作 因为我将使用需要使用 Web 服务的第三方工作流工具从 Sharepoint 工作流与 AD 进行通信 根据我的研究
  • 如何将表格中的td高度设置为0px?

    我有一个包含几行的 HTML 表 这是动态构建的 全部 tr 有一个 td inside If one td 里面没有 HTML 内容 我希望它是不可见的 如何才能做到这一点 并不是说里面的 HTML 是动态渲染的 我不想使用display
  • symfony api 平台深度

    到目前为止 我们一直在 Symfony Doctrine 和 Serializer 深度方面苦苦挣扎 我希望能够使用 Symfony 提供一级深度的 JSON REST API 从而允许我直接从视图管理我的 外键 和关系逻辑 GET peo
  • 有没有办法禁用网站上表单的自动填写? [复制]

    这个问题在这里已经有答案了 我最近才学会使用创建网站HTML and PHP 我创建了一个网站 其中有一个测验 要求人们随机翻译单词 用户将他们的答案输入到表格中 网站评估答案是否正确 现在 当一个问题在一个会话中被问两次时 就会出现自动填
  • CSS3DObject 始终位于 WebGL Mesh 前面

    我正在混合CSS3D Renderer with WebGL Renderer to add HTML3D 空间中的元素WebGL场景 这CSS3DObject在前面WebGL网格即使WebGL Renderer具有较高的 z index
  • 使用日语“Enter”键进行搜索功能

    我在日语方面遇到了问题 我有一个允许用户搜索数据的表单 当用户输入要搜索的字符串并按 Enter 键时 搜索功能就会执行 我的代码是 formSearch input keyup function event var key event c
  • 如何在 font Awesome 图标链接下方添加添加文本?

    我正在尝试在我的 Blogger 模板中的 font awesome Icons 下添加一些文本 这是我想要实现的目标的图像 我想要实现的外观图片 https i stack imgur com BVYlh png 但到目前为止我已经做到了
  • html 表格单元格的条件格式

    是否有现成的解决方案可以对 HTML 表格进行条件格式设置 通过条件格式 我更感兴趣的是根据该列或其他列 在同一个表中 的值 数字 将不同的颜色作为单元格背景 类似于我们在 Excel 条件格式 gt 色阶 gt 红黄绿中的内容 我想在通过
  • Spring RestTemplate 使用 cookie 遵循重定向

    最近我遇到了一个问题 我需要做一个GET请求远程服务 我假设使用一个简单的 servlet 并且 RestTemplate 返回Too many redirects 经过一番调查 似乎对指定远程服务发出的第一个请求实际上只是一个 302 重
  • html css 下拉菜单

    这是我第一次在 Stack Overflow 上发帖 我不熟悉论坛发帖规定 所以请让我知道我做错了什么 我在论坛中研究过这个问题 但我所遇到的一切都没有给我明确的答案 我试图从 新闻 元素创建一个下拉菜单 但在运行代码时我从未得到任何可见的
  • Jquery 在 DIV 中进行多重加载

    这是我的代码 right load textes html nicolas right load textes html antoine 问题是内容divantoine覆盖了右边div nicolas加载的内容div div right l
  • 引导行之间的垂直间距

    所以我正在研究布局 为了 响应能力 我决定使用 Bootstrap 现在我猜网格系统有问题 我想要的结果如下 1 4 2
  • 如何让div与包含td的高度相匹配?

    我沿着桌子的一排布置了三个 面板 一个比另外两个高 我希望所有三个面板都与最高的一个的高度相匹配 我尝试将 div 的样式设置为 height 100 但是即使包含的 tds 增长 短面板仍然很短 我的 HTML 是由 JSF 生成的 因此
  • Resteasy 可以查看 JAX-RS 方法的参数类型吗?

    我们使用 Resteasy 3 0 9 作为 JAX RS Web 服务 最近切换到 3 0 19 我们开始看到很多RESTEASY002142 Multiple resource methods match request警告 例如 我们
  • 如何在表格列标题处垂直旋转文本

    我用过这个数据表 http www datatables net 在我的网页上 这是fiddle http jsfiddle net fxju7 2 链接我放置代码的地方 我想要 第一个数字第二个数字列应该垂直旋转 我已经做到了 但是 问题

随机推荐

  • 如何在 Rails Admin 中隐藏添加新选项

    我正在自定义 Rails Admin https github com sferik rails admin https github com sferik rails admin 我需要禁用 隐藏某些型号的 添加新 选项 任何帮助都会为我
  • Python:使用html解析器提取特定数据

    我开始使用 Python 中的 HTMLParser 从网站中提取数据 我得到了我想要的一切 除了两个 HTML 标签内的文本 以下是 HTML 标签的示例 a href http wold livingsources org vocabu
  • 当我在 Excel 中运行宏时标题被切断

    我在主电子表格中设置了一个标题 在其中运行不同的宏以对信息进行不同的排序 当我运行宏时 标题的底部部分被切断 我的标题确实包含图像 不确定这是否与之有关 我还在所有宏中运行以下代码部分来格式化第一行信息 Rows 1 1 WrapText
  • 将日期时间转换为时间跨度

    我想转换一个DateTime实例化为TimeSpan举例来说 可能吗 我环顾四周 但找不到我想要的东西 我只找到了时差 更具体地说 我想转换DateTime实例以毫秒为单位 然后将其保存到IsolatedStorage 中 您可以只使用日期
  • Smalltalk 和 IoC

    我看到很多 Net 和 Java 的 IoC 框架 有谁知道为什么 Smalltalk 没有等效的框架 这更像是一个哲学问题 我想知道 Smalltalk 的做事方式中是否有某些东西排除了 IoC 框架的必要性 MVC http en wi
  • 更改 Word 文档的页边距

    我创建了一个带有按钮的 Web 部件 单击该按钮后会生成一个包含特定列表的列表项值的 Word 文档 我希望能够更改文档的边距 顶部 底部边距 但我不确定如何继续 谁能阐明如何实现这一目标 到目前为止 我的代码如下 void Generat
  • 从 ggplot 转换时,plotly 会删除分组图例(按颜色、按符号)

    我不太明白为什么当我转换由ggplot to plotly using ggplotly The 情节帮助页面 https plotly com ggplot2 legend 没有任何信息 我认为他们的示例在该页面上甚至无法正常工作 任何帮
  • GLSL - 计算表面法线

    我有一个用 GLSL 编写的简单顶点着色器 我想知道是否有人可以帮助我计算表面的法线 我正在 升级 一个平面 所以当前的灯光模型看起来 很奇怪 这是我当前的代码 varying vec4 oColor varying vec3 oEyeNo
  • 在 R 中生成具有不同样本大小的多项式随机变量

    我需要生成具有不同样本大小的多项随机变量 假设我已经生成了样本大小 如下所示 samplesize c 50 45 40 48 然后我需要根据这个不同的样本大小生成多项随机变量 我尝试使用 for 循环并使用 apply 函数 sapply
  • 将表达式转换为带有扭曲的合取范式

    我有一个必须与之交互的库 它基本上充当数据源 检索数据时 我可以将特殊的 过滤表达式 传递给该库 稍后将其转换为 SQL WHERE 部分 这些表达方式非常有限 它们必须是合取范式 喜欢 A or B or C and D or E or
  • readRDS 无法读入 R 中的文件。是否有替代方案?

    我正在尝试读取从此处下载的 RDS 文件 https github com jheng5 googleCharts tree master inst examples bubble https github com jcheng5 goog
  • “班级未注册”是哪个班级?

    考虑这段代码 try ISomeObject pObj uuidof SomeClass ISomeObject pObj2 uuidof SomeOtherClass catch com error e Log what failed I
  • 如何使用 dotenv 从 .env 和 .env.local 加载环境变量?

    这可能看起来像一个新手问题 但我无法找到使用 dotenv 从节点中的 env 和 env local 文件加载环境变量的方法 有可能吗 如果不使用 dotenv 现在人们如何从这两个文件加载环境变量 引用自 dotenv 的 npm 页面
  • Node.js 支持的操作系统

    是否有关于 Node js 支持的确切操作系统的官方声明 我唯一能找到的是this one https docs appdynamics com display PRO42 Node js Supported Environments No
  • 为路径创建别名

    是否可以在 PowerShell 中为路径创建别名 例如 我必须一直写下去 PS PS C Users Jacek gt cd C windows microsoft net framework v4 0 30319 如果我能写我会很高兴
  • 在python中向量化6个for循环累积和

    数学问题是 总和中的表达式实际上比上面的表达式复杂得多 但这是一个最小的工作示例 以免事情过于复杂 我使用 6 个嵌套 for 循环在 Python 中编写了此代码 正如预期的那样 即使在 Numba Cython 和朋友的帮助下 它的性能
  • 我想使用 java 8 Date Time API 从亚洲/加尔各答的时间计算亚洲/迪拜时区的时间

    ZoneId dubai ZoneId of Asia Dubai LocalDate localDate LocalDate now LocalTime localTime LocalTime now ZonedDateTime zone
  • 尝试从 Java 调用简单的 Oracle PROCEDURE 时索引无效

    根据该过程是否针对生产数据库运行 以下 SQL 块在调用时成功显示 Y 或 N DECLARE v is prod VARCHAR2 1 BEGIN FDS APPS FDS USR SEC PKG2 IS RUNNING IN PRODU
  • 即使没有任何内容,也会出现 Notepad++ XML 解析错误“文档末尾有额外内容”

    当我尝试在 Notepad 中验证 55 mb XML 文件时 收到上述错误消息 第一个遇到的错误在这里 第 1441520 行 共 22258651 行 Notepad 的屏幕截图 https i stack imgur com 9Atc
  • 如何以 REST方式发送 HTML 表单?

    我有一个名为 事实 的资源集合的 URI 以及该集合中每个 事实 资源的 URI 我相信 创建新 事实 的表单应该使用 GET 来请求 但我无法确定应该将其设置为哪个 URI 对集合 URI 的 GET 应返回 事实 资源 URI 的列表