在 Grails 中使用 @Resource 时打印 REST 调用接收到的数据

Print data received by REST call when using @Resource in Grails

根据 REST 上的 groovies 文档,我设置了一个模型,如下所示:

import grails.rest.*
@Resource(uri='/books')
class Book {

    String title

    static constraints = {
        title blank:false
    }
}

我会打印出创建和保存时收到的参数。是否可以覆盖由 @Resource(uri='/books') 注释创建的这些方法?或者处理注解闭包之类的?

如果您希望拥有默认的 RESTful 界面并根据您的需要对其进行一些修改,我认为您可能有 2 个选择。

  1. 使用 $ grails generate-controller [Domain Class Name] 命令将生成适当的控制器并根据需要更改生成的文件。

  2. 创建一个 Book 控制器并扩展 RestfulController;然后使用 @Override 注释覆盖默认方法,print/log 参数,然后调用匹配的 super 方法。

    import grails.rest.RestfulController
    
    class BookController extends RestfulController {
        static responseFormats = ['json', 'xml']
        BookController() {
            super(Book)
        }
    
        @Override
        def save() {
            println params
            super.save params
        }
    
        @Override
        def update() {
            println params
            super.update params
        }
    }