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) 的相关文章

  • Magento 2 REST API 客户自定义属性

    Magento 2 REST API 文档解释了在更新或创建客户时设置custom attributes 的方法 http devdocs magento com swagger index 20 html http devdocs mag
  • 一般如何处理 CXF 请求处理程序中的输入参数?

    我一直在使用 apache CXF 版本 2 2 2 JAX RS 进行一些工作 我试图在调用业务方法之前在 CXF 请求处理程序中引入数据验证层 幸运的是 我在请求处理程序 DataValidationHandler 中遇到输入参数处理问
  • Scala 对大数的阶乘有时会崩溃,有时不会

    以下程序经过编译和测试 有时返回结果 有时充满屏幕 java lang StackOverflowError at scala BigInt apply BigInt scala 47 at scala BigInt equals BigI
  • Kafka REST 代理 API 有哪些好处?

    我不知道Kafka REST Proxy API的优点 它是一个 REST API 所以我知道它对于管理来说很方便 人们为什么使用 Kafka REST 代理 API 添加对生产者或消费者的 Maven 依赖是否很麻烦 另外 我知道kafk
  • 从继承的受保护 Java 字段创建公共访问器

    我怎样才能完成以下工作 class Foo extends javax swing undo UndoManager increase visibility works for method override def editToBeUnd
  • Keycloak 社交登录 REST API

    我已经为我的 keycloak 实例启用了谷歌社交登录 但我需要将其用作休息服务 是否有可用于执行此操作的端点 Keycloak 中没有 Google 身份验证 API 但您可以使用以下方法解决它代币交换 https www keycloa
  • 在 JSON 对象中强制执行非空字段

    我们的 REST API 接收一些 JSON 对象输入 其中某些字段要求不为空 这些可以是字符串 整数 甚至可以是其他一些类实例作为参考 我们正在尝试找到一种方法来强制这些字段不为空 而不是在 API 中进行空检查的正确方法 当前的 if
  • Twitter Future 与 Scala Future 相比有何优势?

    我知道 Scala Future 变得更好的很多原因 有什么理由改用 Twitter Future 吗 除了 Finagle 使用它这一事实之外 免责声明 我在 Twitter 负责 Future 的实施 一点背景知识 在 Scala 有一
  • 什么是 Java 8“视图”?

    我正在观看 Paul Philips 的演讲 http www youtube com watch v TS1lpKBMkgg http www youtube com watch v TS1lpKBMkgg 在 12 48 比较 Scal
  • Spark Scala:按小时或分钟计算两列的 DateDiff

    我在数据框中有两个时间戳列 我想获取它们的分钟差异 或者小时差异 目前我可以通过四舍五入获得日差 val df2 df1 withColumn time datediff df1 ts1 df1 ts2 但是 当我查看文档页面时https
  • Scala repl 抛出错误

    当我打字时scala在终端上启动 repl 它会抛出此错误 scala gt init error error while loading AnnotatedElement class file usr lib jvm java 8 ora
  • 如何在 Scala 中编写 Pig UDF

    我正在尝试在 Scala 中编写 Pig UDF 使用 Eclipse 我已将 pig jar 添加为 java 构建路径中的库 这似乎解决了以下 2 个导入问题 导入 org apache pig EvalFunc 导入 org apac
  • 当REST客户端和服务器在同一台服务器上时如何避免网络调用

    我有一个 Web 应用程序 其中两个主要组件是网站 在 Groovy 和 Grails 中实现 和后端 RESTful Web 服务 使用 JAX RS Jersey 和 Spring 实现 这两个都将在 Glassfish 中运行 该网站
  • Delphi DataSnap REST 服务器从 TStream 返回 JSON 数组,而不是二进制

    我有一个与 Android 客户端通信的 REST 服务器 我将它从 XE3 ish 升级到 Berlin 其中一个服务器方法返回一个包含 jpeg 的 TStream 并且工作得很好 很高兴将图像作为二进制图像返回 升级到 Berlin
  • 如何从spark管道逻辑模型中提取变量权重?

    我目前正在尝试学习 Spark Pipeline Spark 1 6 0 我将数据集 训练和测试 导入为 oas sql DataFrame 对象 执行以下代码后 生成的模型是oas ml tuning CrossValidatorMode
  • Scala 中奇怪的类型不匹配

    我希望这个问题还没有在其他地方得到解答 在这里没有找到答案 在我的本地化系统中 我有一个名为 Language 的类 class Language val name String dict HashMap String String def
  • ';'预期但发现“导入” - Scala 和 Spark

    我正在尝试使用 Spark 和 Scala 来编译一个独立的应用程序 我不知道为什么会收到此错误 topicModel scala 2 expected but import found error import org apache sp
  • Spark:出现心跳错误后丢失数据

    我有一个在 Spark 集群上运行的 Python 程序 有四个工作线程 它处理一个包含大约 1500 万条记录的巨大 Oracle 表 检查结果后发现大约有600万条记录没有插入 我的写入功能如下 df write format jdbc
  • Mandrill 通过 REST API 作为单独的消息发送给多人

    我正在尝试使用山魈发送邮件 问题是 当我将多个收件人添加到 收件人 参数时 它会多次向 收件人 列表中的所有收件人发送同一封邮件 我期望将相同的邮件单独发送给列表中的每个人 我错过了什么吗 key app key template name
  • 除了 GET 和 POST 之外,如何从浏览器向 RESTful 应用程序发送任何内容?

    我没有得到 RESTful 的东西 是的 我知道如何从浏览器向我的应用程序发送 GET 请求 这是通过 URL 链接 a href user someone 并且还可以通过form方法发送POST请求 a

随机推荐