Grails 1.1.x以降、RESTリクエストのXMLおよびJSONアンマーシャリングをサポートしています。バージョン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}" } }
REST呼び出しによるXML送信
<?xml version="1.0" encoding="utf-8"?> <tester> <name>Windows</name> <vendor>Microsoft</vendor> </tester>
XMLを渡すと、コントローラーのログステートメントは次のように出力します。
Tester = null null
Request XML = WindowsMicrosoft
私の戸惑いは、なぜそれがXMLとして認識されるのか(リクエストのXMLフィールドにそれを置くことによって)、それを解析せず、ここで定義されているようにパラメーターに入れるのではないかということです。