PHP:JSONを受け取って返すだけ

こんにちは、さるまりんです。

タイトルのようにただJSONを受け取ってJSONを返すだけのAPIを実装してみたのでそのコードを残しておきます。

// 渡されたJSONを読み込む
$data = input_json();

// そのまま返す出力
output_json($data);

function input_json() {
  // 渡されたJSONを受け取る
  $json = file_get_contents('php://input');
  // JSONを配列にする
  $data = json_decode($json, true);
  return $data;
}

function output_json($data, $status=200) {
  // ヘッダー
  header("Content-Type: application/json; charset=utf-8");
  // レスポンスコード
  http_response_code($status);

  // 配列をJSONにして出力
  echo json_encode($data);
}

処理は二つの関数にしてあります。
一つ目はinput_json()、受け取り部分です。
コードのコメントにもあるように

$json = file_get_contents('php://input');

で、JSONを受け取り、

$data = json_decode($json, true);

で、配列に変換しています。

二つ目はoutput_json()、返す部分です。
まずはJSONのレスポンスなのでContent-Type: application/jsonのHTTPヘッダーを送信、成功を示す200 OKのレスポンスコードを設定し

echo json_encode($data);

で、配列をJSONに戻して返却しています。

これだけです。
普段フレームワークなどにいろんなことを任せていたので、純粋にPHPでやるには?と思い書いてみました。
自分が何をしているのか知っていることって大切だと思っています。

勉強頑張ろう。

読んでくださってありがとうございます。

それではまた!