Я использую Grails v3.2.9
В официальной документации я нашел следующее для сопоставления с методами http :
static mappings = { "/product/$id"(controller:"product", action: "update", method: "PUT") }
Но этого недостаточно. Мне нужно иметь одно сопоставление, которое сопоставляет различные действия (в одном контроллере) на основе метода HTTP.
Есть идеи?
В качестве альтернативы, если вы следуете соглашению по именованию методов для контроллеров REST ... вы можете обойтись без:
"/product/$id" (resources:'product')
Вот хорошая информация: http://mrhaki.blogspot.com/2013/11/grails-goodness-customize-resource.html
Добавить URLMappings вроде -
"/product/api/v2/book" (controller: 'book') { action = [GET: 'show', POST: 'update'] }
Также полезно добавить ограничение метода в контроллер -
static allowedMethods = [show: 'GET', update: 'POST']