Controllers & UrlMappings
Controllers handle requests. Example RESTful controller:
package bookstore
class BookController {
def index() { respond Book.list() }
def show(Long id) { respond Book.get(id) }
def create() { respond new Book(params) }
def save() {
def book = new Book(request.JSON)
if (book.save()) {
respond book, [status:201]
} else {
respond book.errors, [status:422]
}
}
}
UrlMappings
class UrlMappings {
static mappings = {
"/"(controller:'book', action:'index')
"/books"(resources:'book')
}
}
Using resources generates conventional RESTful routes.