CakePHPのWebAPIで正常終了時なのにHTTP500が返されていた

CakePHP(CakePHP3.x)でREST APIを実装した場合、処理が正常に終わっているのにHTTPステータスコード500(Internal Server Error)で返されていました。私の場合はPOSTでデータ登録を行う関数を呼び出すと発生。
その場合、以下のいずれかを行えばHTTPステータスコード200が返されるようになります。

  1. テンプレートファイル(\{CakePHPプロジェクト}\src\Template\コントローラー名\アクション名.ctp)を用意する
    中身は何も記述しなくてもOK
  2. REST APIでJSONを返す
    JSONを返すサンプル
public function actionName()
{
    // function の先頭で記述.
    $this->viewBuilder()->setClassName('Json');

    /* 処理 */

    // function を終了する箇所.
    $this->set([
        '_serialize' => []
        ]);
}

私の場合はデータ登録処理では結果を不要としていたため、発生しちゃいましたorz。

このエントリーをはてなブックマークに追加
にほんブログ村 IT技術ブログへ

コメント

メールアドレスが公開されることはありません。 が付いている欄は必須項目です