wp-rest-api-development
WordPress REST APIのレビューと開発ガイダンスを提供します。カスタムRESTルート、permission_callbackロジック、スキーマ設計、WP_REST_Requestの処理、レスポンス構造、バージョニング、コントローラークラス、nonce認証の使用方法などをレビューするときに使用します。また、「REST APIレビュー」「register_rest_route」「permission_callback」「WP_REST_Request」「RESTエンドポイント」「カスタムAPI」「APIスキーマ」「RESTコントローラー」「ヘッドレスWordPress」「API認証」といったキーワードをユーザーが提示した場合にも対応します。WordPress REST APIコードのルート登録の問題、認可エラー、スキーマのズレ、入力値検証の欠落、レスポンス設計の問題を検出できます。
description の原文を見る
WordPress REST API review and development guidance. Use when reviewing custom REST routes, permission_callback logic, schema design, WP_REST_Request handling, response structure, versioning, controller classes, nonce or auth usage, or when user mentions "REST API review", "register_rest_route", "permission_callback", "WP_REST_Request", "REST endpoint", "custom API", "API schema", "REST controller", "headless WordPress", or "API auth". Detects route registration issues, authorization mistakes, schema drift, input validation gaps, and response design problems in WordPress REST API code.
SKILL.md 本文
WordPress REST API 開発スキル
概要
WordPress プラグイン、テーマ、カスタムコードのための体系的な REST API レビュー。コア原則: すべてのルートに明確なコントラクト、明示的な認可、検証済みのインプット、予測可能なアウトプットが必要です。レビューはルート登録、コントローラーパターン、リクエスト解析、スキーマと引数検証、レスポンスフォーマット、キャッシュの影響、互換性の懸念を網羅します。行番号、重大度ラベル、必要に応じて BAD/GOOD コードペアを含めて、調査結果を報告します。
使用場面
使用する場合:
register_rest_route()の使用方法をレビューする- カスタム API エンドポイントまたはコントローラークラスを監査する
permission_callbackロジックをチェックするWP_REST_Requestインプット処理を検証する- レスポンス形状、ステータスコード、スキーマをレビューする
- ヘッドレス型またはブロック駆動型アプリのバージョン管理されたエンドポイントを設計する
使用しない場合:
- REST フォーカスのない一般的なプラグインアーキテクチャ (wp-plugin-development を使用)
- プラグイン全体のセキュリティのみのレビュー (wp-security-review を使用)
- WooCommerce エンドポイントの完全なレビュー (WC 固有の場合は wp-woocommerce-dev を使用)
- GraphQL 固有のガイダンス
コードレビューワークフロー
-
REST コンテキストを特定する
- プラグインブートストラップ内のルートコールバック
WP_REST_Controllerを拡張するコントローラークラス- ヘッドレスフロントエンド統合
- 内部管理者専用 API 使用
-
ルート登録を最初にチェックする
- 名前空間とバージョンフォーマット
- HTTP メソッドが操作の意図と一致
permission_callbackが存在し具体的であるか- リクエスト検証のための
args定義
-
リクエスト処理をレビューする
$request->get_param()または型付きゲッターを使用、生のグローバル変数ではなく- すべてのユーザーインプットを検証およびサニタイズする
- 意味のある
WP_Errorで不正なインプットを拒否する
-
レスポンス設計をレビューする
- 一貫したレスポンス形状
- 適切なステータスコード
- 必要に応じて
rest_ensure_response()を使用 - 内部詳細の漏洩を避ける
-
CRITICAL/WARNING/INFO パターンをチェックする
- CRITICAL:
permission_callbackなし、__return_trueで書き込みルート、生のグローバル変数、サニタイズされていない DB クエリ - WARNING: 矛盾したスキーマ、弱い検証、混合レスポンス形状、ページネーション情報の欠落
- INFO: コントローラークラスの使用、スキーマ再利用、バージョン管理のクリーンアップが可能
- CRITICAL:
-
相互参照で報告する
- 認可または nonce の問題が支配的な場合は、
/wp-sec-reviewを提案 - ルートロジックがプラグインアーキテクチャ重視の場合は、
/wp-plugin-reviewを提案
- 認可または nonce の問題が支配的な場合は、
ファイルタイプ別チェック
ルート登録 (register_rest_route)
- CRITICAL:
permission_callbackの欠落 - CRITICAL: 書き込みエンドポイント上の
'permission_callback' => '__return_true' - WARNING: バージョンセグメントのない名前空間
- WARNING:
rest_api_init外で登録されたルート - INFO: コントローラーメソッドを使用すべき繰り返されるインラインコールバック
権限コールバック
- CRITICAL: 非公開データに対する能力チェックの欠落
- WARNING: 管理者のようなアクションに対して常に true を返すコールバック
- WARNING: ユーザー固有リソースの所有権チェック不足
- INFO: 繰り返される権限ロジックを一元化できる
リクエスト引数と検証
- CRITICAL: エンドポイントコールバック内で生の
$_GET/$_POSTを使用 - WARNING:
sanitize_callbackまたはvalidate_callbackの欠落 - WARNING: 既知の値に対する列挙/フォーマット制約の欠落
- INFO: 再利用可能なアイテムスキーマを定義できる
レスポンス処理
- WARNING: ルート全体で混合された成功レスポンス形状
- WARNING: REST コールバック内で
wp_send_json()を使用、レスポンスデータを返す代わり - INFO: ヘッダー/ステータス制御に
WP_REST_Responseを使用できる
クイック検出用検索パターン (API-21)
REST API を高速にスキャンするために以下の rg コマンドを使用します。重大度別に整理。
CRITICAL パターン
# register_rest_route 候補
rg -n "register_rest_route\s*\(" . -g '*.php'
# permission_callback が true を返す
rg -n "permission_callback.*__return_true" . -g '*.php'
# REST コールバック内の生のスーパーグローバル
rg -n "\$_GET|\$_POST|\$_REQUEST" . -g '*.php'
WARNING パターン
# 明らかな検証ヘルパーなしの WP_REST_Request 使用
rg -n "WP_REST_Request|get_param\s*\(" . -g '*.php'
# wp_send_json を使用する REST コールバック
rg -n "wp_send_json|wp_send_json_success|wp_send_json_error" . -g '*.php'
# バージョン管理を検査するルート名前空間
rg -n "register_rest_route\s*\(\s*['\"][^'\"]+" . -g '*.php'
INFO パターン
# WP_REST_Controller クラス
rg -n "extends\s+WP_REST_Controller" . -g '*.php'
# rest_ensure_response 使用
rg -n "rest_ensure_response|new\s+WP_REST_Response" . -g '*.php'
参考ファイル
references/route-patterns.md- ルート登録、コントローラー構造、名前空間設計references/schema-and-auth-guide.md- 引数スキーマ、権限コールバック、インプット検証、レスポンス設計
出力フォーマット (API-23)
各検出結果に以下を含める:
- 重大度:
CRITICAL、WARNING、またはINFO - ファイルと行番号
- 問題の概要
- WordPress REST API 動作にとって重要な理由
- 推奨される修正
問題が見つからない場合は、明確にそう述べ、テストの欠落、矛盾したスキーマドキュメント、限定的なバージョン管理戦略など残存するギャップに言及してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- jorgerosal
- ライセンス
- MIT
- 最終更新
- 2026/4/17
Source: https://github.com/jorgerosal/wordpress-skills / ライセンス: MIT