CakePHPのWebAPIで正常終了時なのにHTTP500が返されていた
CakePHP(CakePHP3.x)でREST APIを実装した場合、処理が正常に終わっているのにHTTPステータスコードが500(Internal Server Error)で返されていました。私の場合はPOST
でデータ登録を行う関数を呼び出すと発生。
その場合、以下のいずれかを行えばHTTPステータスコードが200が返されるようになります。
- テンプレートファイル(
\{CakePHPプロジェクト}\src\Template\コントローラー名\アクション名.ctp
)を用意する
中身は何も記述しなくてもOK - REST APIでJSONを返す
JSONを返すサンプル
public function actionName()
{
// function の先頭で記述.
$this->viewBuilder()->setClassName('Json');
/* 処理 */
// function を終了する箇所.
$this->set([
'_serialize' => []
]);
}
私の場合はデータ登録処理では結果を不要としていたため、発生しちゃいましたorz。