Grails 使用休息和脚手架动作
我看到Grails2.3在脚手架中使用REST进行CRUD操作。虽然这是了解REST如何工作的好方法,但我想知道使用REST在单个应用程序堆栈内进行通信是否非常有效。它不是将请求一直发送到网络层,然后再返回,而不是直接从应用服务器发送到数据库吗?我想象的是一个“pop fly”,而不是一个“line drive”。我是否误解了它的工作原理?当你说“在scaffolding中为CRUD操作使用REST”时,我假设你指的是基本的scaffolding(即Grails 使用休息和脚手架动作,grails,Grails,我看到Grails2.3在脚手架中使用REST进行CRUD操作。虽然这是了解REST如何工作的好方法,但我想知道使用REST在单个应用程序堆栈内进行通信是否非常有效。它不是将请求一直发送到网络层,然后再返回,而不是直接从应用服务器发送到数据库吗?我想象的是一个“pop fly”,而不是一个“line drive”。我是否误解了它的工作原理?当你说“在scaffolding中为CRUD操作使用REST”时,我假设你指的是基本的scaffolding(即生成所有示例.Book)。脚手架控制器未调用R
生成所有示例.Book
)。脚手架控制器未调用REST API(https://yourapp/book.json
)要检索数据,他们仍然使用GORM访问数据库,然后使用Respond
方法根据请求的内容类型(XML、JSON、HTML)以适当的格式呈现数据。所以
典型的请求-响应周期
http://yourapp/books/1
)id:1
)http://yourapp/books/1.json
**)id:1
)并回答您关于它是否“非常有效”的问题。我认为这几乎总是肯定的,因为您的负载往往要小得多,因为您只传输数据,而不是数据+格式(HTML、javascript、css等)。它还提供了一种分离关注点的方法,允许客户端关注状态和表示,后端关注数据。此外,这意味着您可以使用相同的后端API创建多个客户端(移动、基于桌面、基于web)。公开的REST方法供其他客户端使用,而不是供同一Grails应用程序(服务器端)内部使用。因此,您可以通过AJAX或其他应用程序(例如,仅限客户端的Web应用程序)从浏览器客户端调用它们。。。