2015-12-14 36 views
0

我已經在Grails 3.0.10上構建了一個演示項目如何通過REST API在Grails 3上插入數據?

我可以用REST請求讀取數據,但我不知道如何插入數據。

這裏是如何我的項目建:

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

編輯文件的grails-app /域/書店/ Book.groovy:

package bookstore 

class Book { 

    String title 
    String author 
    Date publicationDate 

    static constraints = { 
    } 
} 

支架:

grails generate-all bookstore.Book 

運行app:

grails run-app 

瀏覽: http://localhost:8080

在這裏,我可以插入和從瀏覽器列表中的項目; O)

現在我想使用REST API!

讀取數據是OK:

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} 

,並沒有什麼插入。

回答

3

默認create操作不保存任何內容。它用於在使用瀏覽器表單創建實例時填充初始表單。您可能想要調用save操作。

這不是真的與您的問題有關,而是僅供參考......如果您正在構建REST界面,您應該查看RestfulController和/或@Resource註釋。

+0

我剛剛在https://github.com/jeffbrown/bookstore上創建了一個示例項目。那裏請參閱自述文件。 –