scala中的RESTful http DELETE方法(玩2.0)

2024-04-22

我正在使用 Play 2.0 构建应用程序。
由于 Play 表单生成器不会生成本机 http“Delete”请求方法,因此应将其替换为“Get”或“Post”。

@form(routes.Application.delete(id), 'class -> "topRight") {
    <input type="submit" value="Delete this computer" class="btn danger">
}

根据 Play 示例,“发布”应用于“删除”目的。尽管使用“获取”很舒服,因为可以用简单的链接替换表单(特别是在单个页面上列出这些链接)

那么有什么理由使用POST来模拟DELETE呢?


使用理由POST用于模仿DELETE 代替 GET是因为 HTTP 规范认为某些 HTTP 动词(又名方法)是安全的。这些方法是HEAD, GET, OPTIONS and TRACE http://www.w3.org/Protocols/rfc2616/rfc2616.html。这意味着在使用这些 HTTP 方法发出请求时,应用程序状态不应产生任何副作用。日志记录、缓存或计数器增量通常不被视为应用程序状态修改,除非它是应用程序域的一部分。

使用理由POST用于仿真DELETE请求而不是直接使用DELETE在网络表单中是因为许多浏览器不支持DELETE直接地。许多使用帮助程序生成表单标记的 Web 框架(例如 Play 和 Rails)都使用您提到的技巧将请求映射到代码中相应的 REST-ish 操作。看浏览器中的 HTTP 方法支持 http://annevankesteren.nl/2007/10/http-method-support了解更多信息。另请参阅这个问题 https://stackoverflow.com/questions/165779/are-the-put-delete-head-etc-methods-available-in-most-web-browsers有关此主题的更多信息。根据W3C最新的HTML5候选推荐,HTML5 FORM元素不支持以下值method除 GET 或 POST 之外的属性 http://www.w3.org/TR/html5/forms.html#attr-fs-method。对于FORMHTML 4.01 中的元素 http://www.w3.org/TR/html401/interact/forms.html#edef-FORM.

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

scala中的RESTful http DELETE方法(玩2.0) 的相关文章

  • Scala 模式匹配变量绑定

    为什么提取器返回时不能以 样式绑定变量Option
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • REST Web 服务 WSDL? [复制]

    这个问题在这里已经有答案了 我正在实现一个 Web 服务 并且已经实现了 REST 和 SOAP 版本 看看哪个版本适合我的需求 我决定选择 REST 因为它很简单 而且我可能会开发一个 iPhone 应用程序来使用它 我的问题很简单 是否
  • 对 Scala Not Null 特征的库支持

    Notice 从 Scala 2 11 开始 NotNull已弃用 据我了解 如果您希望引用类型不可为空 则必须混合魔法NotNull特征 编译器会自动阻止你输入null 可以值在里面 看到这个邮件列表线程 http www nabble
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF
  • Scala 特性:val/def 和 require

    下面的代码抛出IllegalArgumentException trait T val x Long require x gt 0 object T extends App val y new T val x 42L 而以下情况则不然 tr
  • 如何获取数组作为 GraphQL 解析器的输入

    我想得到一个字符串数组ids查询变量中的参数并在我的解析器中使用它 下面是我的代码 People resolver ts import Resolver Query Mutation Args from nestjs graphql imp
  • REST 将多个输入传递给 GET 方法

    我在 RAD 中部署了一个简单的基于 REST 的应用程序 使用以下方式访问简单的 URLhttp localhost
  • 如何理解play2中的“Iteratee”?

    有一个包play api libs iteratee在play2中 有一个大物体Iteratee其中有超过1000行 为什么play2需要这么大的对象以及如何理解它 我刚刚写了一篇文章 试图向那些尝试发现 Play2 提供的 Iterate
  • Scala 解析器组合器的运算符优先级

    我正在研究需要考虑运算符优先级的解析逻辑 我的需求并不太复杂 首先 我需要乘法和除法比加法和减法具有更高的优先级 例如 1 2 3 应视为 1 2 3 这是一个简单的例子 但你明白了 我需要将更多自定义标记添加到优先级逻辑中 我可以根据此处
  • 如何处理 REST api 中的 php 通知、警告和错误?

    在 REST API 中 200 响应表明操作成功 PHP 默认情况下直接在响应正文中输出错误消息 而不更改响应代码 在 SPA 中 用户无法直接看到响应文本 因此 当应用程序未按预期工作时 我通过 FireBug 检查响应正文 以检查可能
  • 分析 sbt 构建

    我的 sbt 构建需要很长时间 它又大又复杂 很难知道从哪里开始清理 看起来 sbt 保留了很多关于构建结构的元数据 包括相互依赖关系 命名任务 范围界定等 有了所有这些元数据 似乎很容易跳入并测量每个不同任务 及其范围 花费的时间 在代码
  • Apache Camel 2.14 Rest DSL 安全

    我想使用 Apache Camel 2 14 中新的 Rest DSL 来创建一个 Rest 接口 我想使用 Jetty 组件 并且我有一个如下所示的基本示例设置 Spring安全配置
  • 这是 Box API v2 获取事件时的错误吗

    使用 BOX API v2 从 Box 获取事件时 我发现了一个奇怪的行为 我得到的场景如下 使用 box API v1 将 14 个文件上传到 box net 使用stream position now 获取事件 这给出了流位置 例如12
  • 按字符分割字符串

    scala 有一个标准的分割字符串的方法StringOps split 但它的行为有点让我惊讶 演示一下 使用快捷便利功能 def sp str String str split toList 以下表达式全部计算结果为 true sp Li
  • 关于 scala.math.Integral 的问题

    有什么方法mkNumericOps andmkOrderingOps of scala math Integral http www scala lang org api current scala math Integral html我们
  • 配置Scala工作表的工作目录

    我希望 Scala 工作表 和 Scala 解释器 的工作目录是 Eclipse 项目路径而不是 Eclipse 安装目录 我怎样才能 非编程方式 实现这一目标 我知道我可以使用System setProperty user dir 但恕我
  • 从 scala 的 Type 获取 ParameterizedType?

    有用的是 scala 的 Universe typeOf 保留了类的类型参数 import scala reflect runtime universe case class X T TypeTag val t typeOf T e g S
  • java.lang.OutOfMemoryError:Scala 上超出了 GC 开销限制

    我是 Scala 开发人员 我在Routes它包含的文件1008行如果我添加另一行 则会抛出下面的错误 Uncaught error from thread sbt web scheduler 1 shutting down JVM sin
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐