Начиная с Grails 1.1.x, они поддерживают демаршаллинг XML и JSON для запросов REST. Кажется, я не могу заставить это работать в версии 2.1.0. Вот соответствующие файлы из примера проекта, который я использую для проверки функциональности:
UrlMappings.groovy
static mappings = { "/$action/$id?"(controller:'verification',parseRequest:true) "/"(view:"/index") "500"(view:'/error') }
Tester.groovy
class Tester { String name String vendor String toString() { return "$name $vendor" } }
VerificationController.groovy
class VerificationController { def save() { Tester tester = new Tester(params.tester) log.error "Tester = ${tester}" log.error "Request XML = ${request.XML}" } }
Отправка XML с вызовом REST
<?xml version="1.0" encoding="utf-8"?> <tester> <name>Windows</name> <vendor>Microsoft</vendor> </tester>
Когда я передаю XML, операторы журнала контроллера выводят следующее:
Tester = null null
Request XML = WindowsMicrosoft
Мое недоумение было бы в том, почему он распознает его как XML (поместив его в поле XML запроса), но не проанализирует его и не поместит в параметры, как определено здесь