升级到 Grails 2.3.0 时 RESTful 请求缺少参数

2024-03-19

我正在使用 Grails 和 RESTful 来开发我的 Web 应用程序。一切正常,直到我将应用程序升级到 Grails 2.3。这是我的 UrlMappings: 我仍然正常发送请求、提交或做一些其他事情,但在 POST、PUT 请求中,参数丢失。服务器只识别我直接放在 URL 上的参数,但提交时在表单或模型中包含的其余参数在“params”变量中找不到。他是我的UrlMappings:

class UrlMappings {

    static mappings = {
        "/$controller/$action?/$id?"{ constraints {} }

        name apiSingle: "/api/$controller/$id"(parseRequest:true){
            action = [GET: "show", PUT: "update", DELETE: "delete"]
            constraints { id(matches:/\d+/) }
        }
        name apiCollection: "/api/$controller"(parseRequest:true){
            action = [GET: "list", POST: "save"]
        }

        name api2: "/api/$controller/$action"(parseRequest:true)
        name api3: "/api/$controller/$action/$id"(parseRequest:true)

        "/"(view:"/welcome")
        "500"(view:'/error')
    }
}

我已经阅读了 Grails 2.3 的最新文档,位于http://grails.org/doc/latest/guide/theWebLayer.html#restfulMappings http://grails.org/doc/latest/guide/theWebLayer.html#restfulMappings
但我认为还不清楚。我已经尝试按照文档进行操作,但没有结果。并且没有任何关于使用 Grails 2.3 和 RESTful 的示例供我参考。
如何才能让它像以前一样正常工作,并且可以访问REST请求中的所有参数值?太感谢了!


根据这个http://grails.1312388.n4.nabble.com/Grails-2-3-and-parsing-json-td4649119.html http://grails.1312388.n4.nabble.com/Grails-2-3-and-parsing-json-td4649119.html parseRequest自 Grails 2.3 起没有任何影响

如果您使用 JSON 作为请求正文,您可以访问请求参数:request.JSON.paramName

作为解决方法,您可以添加一个过滤器,将数据从 JSON 填充到参数:

class ParseRequestFilters {

    def filters = {
        remoteCalls(uri: "/remote/**") {
            before = {
                if (request.JSON) {
                    log.debug("Populating parsed json to params")
                    params << request.JSON
                }
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

升级到 Grails 2.3.0 时 RESTful 请求缺少参数 的相关文章

  • Azure API Manager 将所有内容公开,摆脱 Ocp-Apim-Subscription-Key

    我有一些通过 Azure API 管理代理的 REST API 出于某种原因 我希望将其公开以应对所有请求 从开发人员的角度来看 我想摆脱在标头 或请求 中设置密钥 Ocp Apim Subscription Key XXXXXXXXXXX
  • 如何获取 Grails 应用程序的绝对路径

    我希望用户能够下载我的文件web app images folder 我已经建立了这样的行动 def download def file new File params filepath if file exists response se
  • 如何触发应用程序通过 REST 服务获取数据?

    我正在寻找一种方法来触发应用程序从远程 REST 服务获取数据 该方法不需要轮询 iOS 推送通知似乎不是一个选项 因为它可以被用户停用 然而 我可能是错的 是否有最佳实践来完成此任务 实际上 推送通知是可行的方法 在 ios8 及更高版本
  • 如何在没有 baseUrl 的情况下设置 Retrofit

    我的 apiPath 是完全动态的 我有包含 ipAddress 和 SSLprotocol 等字段的项目 基于它们我可以构建我的网址 private String urlBuilder Server server String proto
  • 调试 Bootstrap.groovy 的最佳方法是什么?

    我正在将一些数据插入数据库 但即使我看不到任何验证错误 某些对象也没有插入 使用 stacktrace 或 sql 出错的最佳方法是什么 以便我可以找出问题所在 例如我这样做 new XXXXX property blah save flu
  • 如何在 Codeigniter 中我自己的控制器中生成 API 密钥

    只是想提一下 我确实是 API 开发 概念 结构 最佳实践 方面的新手 我对它一点也不熟悉 所以如果您发现我正在使用 Phil 请原谅我可悲的愚蠢问题Sturgeon 的 REST API 服务器 Curl 库和 REST API 客户端这
  • 为什么“FormDataMultiPart”类型参数被区别对待

    我正在编写一个小网络应用程序 将文件上传到网络服务器 我一切正常 但令我感到困惑的是 几乎所有从客户端 浏览器 发送的参数都必须在服务器端注入单词 FormDataParam except FormDataMultiPart类型参数 有人可
  • 用于 RESTful 轨道应用程序的简单面包屑

    是否有任何辅助方法 除了默认 Rails 面包屑导航 http wiki rubyonrails org rails pages Breadcrumbs 为特定页面动态生成面包屑导航 而无需在 RESTful 应用程序中传递琐碎的参数 也就
  • 如何从 Android 调用 RESTful 方法?

    我尝试了两种不同的方法来从 Android 调用简单的 REST 方法 所述 REST 方法 适用于其他客户端 仅返回一个 int val 例如 17 以下两次尝试都是基于我在网上找到的代码 有一种是这样的 公共无效onFetchBtnCl
  • Grails 3.x bootRun 失败

    我正在尝试在 grails 3 1 11 中运行一个项目 但出现错误 失败 构建失败并出现异常 什么地方出了错 任务 bootRun 执行失败 进程 命令 C Program Files Java jdk1 8 0 111 bin java
  • 如何处理 REST api 中的 php 通知、警告和错误?

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

    有没有办法为域类属性设置默认值 我有一堂课叫PayMethod 我想要的地方name属性默认为 Cash 我在创建此表时想要这个默认值 这可以使用约束吗 package abc import util UserUtil import emb
  • Grails - 在 CLASSPATH 中找不到类“org.grails.tomcat.TomcatLoader”

    grails run app目前 Eclipse 内部为我的 Google App Engine Grails 测试应用程序提供了以下例外情况 Enhancing JDO classes enhance DataNucleus Enhanc
  • 使用 AFNetworking 重置基本身份验证凭据

    我正在编写一个 REST 客户端 使用 AFNetworking 并且需要能够在应用程序的单个实例中触发新会话的创建 换句话说 我想 1 通过服务器进行身份验证2 进行一些 REST 调用3 模拟 注销 4 重新与服务器进行身份验证5 进行
  • Grails/GORM“符合”标准

    是否可以使用 GORM 标准执行 in 标准 我正在寻找与以下 SQL 等效的内容 select from Person where age in 20 21 22 如果可能的话 我想语法会是这样的 def results Person w
  • 是否可以覆盖方法 **CreateLink** 和 **CreateLinkTo** 的行为?

    可以覆盖方法的行为创建链接 and 创建链接 您可以使用元编程来替换 ApplicationTaglib 上的闭包 ApplicationTagLib metaClass getCreateLink gt return attrs gt y
  • 3rd party API 返回 500 错误,我的 API 应该返回什么代码

    我在基于 ZF2 Zend Framework 2 的框架中编写了一个 API 称为 Apigility 我的服务可以查询第 3 方 API 偶尔 我会收到 500 错误消息 要么是由于令牌过期 要么是其他原因 我的 API 应如何响应我的
  • 如果遵循 REST 架构,如何访问 codeigniter 中的 URL 参数?

    以下是可用于访问资源的基于 REST 的有效 URL 使用codeigniter 如何访问下面传递的参数1 我在教程中看到了上述内容并设置了我的代码 然而显然 id this gt input gt get id 不起作用 Using th
  • 如何在 Ext.js 中自动完成 html 输入标签?

    如果您使用 Ext js 库 如何在输入文本区域中进行自动完成 更准确地说 如何根据迭代 Ajax 请求进行自动完成 例如jQuery 自动完成插件 http docs jquery com Plugins AutoComplete aut
  • Spring Rest 和 Jsonp

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

随机推荐