【问题标题】:How to insert data on Grails 3 through REST API?如何通过 REST API 在 Grails 3 上插入数据?
【发布时间】:2015-12-14 12:21:57
【问题描述】:

我在 Grails 3.0.10 上构建了一个演示项目

我可以通过 REST 请求读取数据,但我不知道如何插入数据。

这是我的项目的构建方式:

grails create-app bookstore
cd bookstore
grails create-domain-class bookstore.Book

编辑文件 grails-app/domain/bookstore/Book.groovy :

package bookstore

class Book {

    String title
    String author
    Date publicationDate

    static constraints = {
    }
}

脚手架:

grails generate-all bookstore.Book

运行应用程序:

grails run-app

浏览: http://localhost:8080

从这里我可以从浏览器中插入和列出项目;o)

现在我想使用 REST API!

读取数据没问题:

curl -H "Accept: application/json" -i http://localhost:8080

/book.jsonHTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Application-Context: application:development
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 14 Dec 2015 12:14:01 GMT
[{"class":"bookstore.Book","id":1,"author":"James","publicationDate":"2015-12-13T23:00:00Z","title":"Hello"}]

但是当我尝试插入数据时:

curl -i -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{"title":"Test", "author":"Franck"}'

http://localhost:8080/book/create.jsonHTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Application-Context: application:development
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 14 Dec 2015 12:16:03 GMT
{"class":"bookstore.Book","id":null,"author":null,"publicationDate":null,"title":null}

并没有插入任何内容。

【问题讨论】:

    标签: rest grails


    【解决方案1】:

    默认的create 操作不会保存任何内容。它用于在使用浏览器表单创建实例时填充初始表单。您可能希望改为调用 save 操作。

    这实际上与您的问题无关,但仅供参考...如果您正在构建 REST 接口,您应该查看 RestfulController 和/或 @Resource 注释。

    【讨论】:

    猜你喜欢
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-17
    • 2011-10-09
    相关资源
    最近更新 更多