説明
WP_REST_Response は、REST APIのレスポンス(データ、ステータス、ヘッダー)を表すクラスです。
基本構文
new WP_REST_Response( mixed $data = null, int $status = 200, array $headers = array() )
引数
$data:レスポンスのデータ$status:HTTPステータス$headers:ヘッダー
戻り値
WP_REST_Response オブジェクト。
使い方(サンプル)
return new WP_REST_Response( array( 'ok' => true ), 200 );
注意点
- 配列をそのまま返しても、自動で変換されます。ステータスやヘッダーを制御したいときに使います。
実務での使いどころ
- REST APIの応答の、データ・ステータスコード・ヘッダーを、まとめて指定するとき。
よくあるミスと対処
- ステータスコードを、指定していない。作成の成功は、
201などにする。 - 配列を、返すだけでよいのに、複雑にしている。配列を、そのまま返しても、WordPressが、応答に整える。
- エラーを、
WP_REST_Responseで返している。エラーは、WP_Errorを返す。
NG例
return new WP_REST_Response( array( 'error' => '見つかりません' ) ); // エラーでも、ステータスが 200
OK例
$response = new WP_REST_Response( array( 'id' => $id ) );
$response->set_status( 201 );
$response->header( 'X-My-Header', 'value' );
return $response;
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| 応答を、作る | WP_REST_Response |
| 戻り値を、応答に整える | rest_ensure_response() |
| エラーを返す | WP_Error() |

コメント