私は RESTful Web サービスを作成しています。現在、新しいリソース (Season
リソース) の挿入に直面しています。これは POST リクエストの本文です。
<request>
<Season>
<title>new title</title>
</Season>
</request>
これは、挿入を効果的に実行するコントローラーです。
public function add() {
// i feel shame for this line
$request = json_decode(json_encode((array) simplexml_load_string($this->request->input())), 1);
if (!empty($request)) {
$obj = compact("request");
if ($this->Season->save($obj['request'])) {
$output['status'] = Configure::read('WS_SUCCESS');
$output['message'] = 'OK';
} else {
$output['status'] = Configure::read('WS_GENERIC_ERROR');
$output['message'] = 'KO';
}
$this->set('output', $output);
}
$this->render('generic_response');
}
コードは非常にうまく機能しますが、上記のスニペットで書いたように、コントローラーの最初の行が非常に見にくいと考えています。