API&JWTトークンエンドポイント(WordPress-PHP)

エンドポイント登録

ここで好きなURLをAPI発行所として設定することができます。
callbackでAPI発行処理等を書いた関数を登録
permission_callbackでAPI発行する前にトークン認証したりすることができます。(これは必須ではありません)

トークンエンドポイント

秘密キーの設定(公開外)

例: /home/username/secret-config.php

キーの隠し方はこっち

トークン発行エンドポイント

保護されたエンドポイントでのチェック

他のエンドポイントでは、トークンを検証する permission_callback を使います。

要するにこの関数をエンドポイント登録のところで permission_callback として設定してAPIを発行する前にヘッダーでトークンをチェックしてからAPIを発行して安全性を高めようということです。

✅ WP_REST_Request とは?

WordPressのREST APIでコールバック関数を作るときに、自動的に引数として渡されるクラスです。
リクエスト情報を扱う便利なラッパーと思えばOKです。

  • $request->get_param() → $_GET や $_POST の値をまとめて取得
  • $request->get_header() → リクエストヘッダの値を取得
  • $request->get_body() → JSON本文をそのまま取得

普通の $_POST や $_GET を使うより安全で、REST API向けに統一的に扱えるようになっています。

🔹 ポイント

  1. $request->get_json_params()
    → application/json で送られたリクエストを自動でパースして配列化してくれます。
    → file_get_contents("php://input") + json_decode を自分で書く必要なし!✨
  2. エラー応答もJSONで返せる
    → new WP_Error(..., ..., array('status' => 403)) を返すと、REST API の標準エラーフォーマットで返却されます。
  3. 返り値は配列でOK
    → WordPress REST API が自動で JSON に変換して返してくれます。

API発行エンドポイント

👉 こうすると、

  • https://example.com/wp-json/weather/v1/cache にアクセスするとキャッシュ済みJSONが取得できる

コメント

タイトルとURLをコピーしました