simple_json_viewを使ったJSON出力

dietcake advent calendar 2014 の10日目です。
APIサーバを実装する際には、JSONを出力する機会もあると思います。
dietcake でJSON出力やCSVを出力する場合は専用のViewクラスを用意して切り替えて使う形になっています。

app_class.png

簡易的なJSON出力であれば、 app_simple_json_viewクラス を使う事で実現できます。

まず、appディレクトリの直下に https://raw.githubusercontent.com/dietcake/dietcake-showcase/master/app_simple_json_view/app_simple_json_view.php をダウンロードして配置します。

次に、app/config/bootstrap.php に、“ require_once APP_DIR . ‘app_simple_json_view.php’; ‘’ を追加します。

すべてのレスポンスをJSONで返す場合は、app/app_controller.php を AppSimpleJsonView に書き換えればOKです。もし、通常はtwigで表示して、別途APIの時だけJSONを返すような場合は、
APIコントローラーを作って、その $default_view_class メンバ変数を上書きすると良いでしょう。
今回は紹介しませんが、もちろん特定のメソッドだけViewクラスを差し替える事も可能です。

下準備が終わったら、コントローラーのメソッド内で以下のような感じで response キーに対して値をセットすればOKです。

$response = array(
    ‘user_id’ => 100,
    ‘api_count’ => 100,
    ‘api_limit_count’ => 1000,
);
$this->set(‘response’ $response);

あと、これはこのライブラリというよりはPHPでJSONを扱うときの一般的な問題なのですが、JSONを作るときは、型に注意してください。
‘100’と100はまったくの別物なので、PHPで作ったJSONをAndroidのJavaで受け取るようなケースだとうまく読み取れない可能性があります。

投稿者: halt

PHPプログラマ。

コメントを残す

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

ねこ認証:9つのパネルの中からねこを3匹選んでください