ルートとエンドポイント

WordPress REST APIの文脈において、ルートは異なるHTTPメソッドにマッピングできるURIです。個々のHTTPメソッドをルートにマッピングすることはエンドポイントとして知られています。

例えば、URI http://oursite.com/wp-json/に対してGETリクエストを行うと、利用可能なルートと各ルート内で利用可能なエンドポイントを示すJSONレスポンスが返されます。

/wp-json/はルートであり、そのルートがGETリクエストを受け取ると、そのリクエストはWordPress REST APIのインデックスとして知られるものを表示するエンドポイントによって処理されます。

対照的に、ルートwp-json/wp/v2/postsは投稿のリストを返すGETエンドポイントを持っていますが、新しい投稿を作成するための認証されたリクエストを受け入れるPOSTエンドポイントも持っています。

次のセクションでは、自分自身のルートとエンドポイントを登録する方法を学びます。

非美しいパーマリンクを使用している場合、REST APIルートをクエリ文字列パラメータとして渡す必要があります。上記の例のルートhttp://oursite.com/wp-json/はしたがってhttp://oursite.com/?rest_route=/になります。

http://oursite.com/wp-json/にアクセスしようとしたときに404エラーが発生した場合は、美しいパーマリンクを有効にするか、rest_routeパラメータを代わりに使用してみてください。

リクエスト

REST APIリクエストは、現在のリクエストの情報を保存および取得するために使用されるWP_REST_RequestクラスのインスタンスによってWordPress内で表されます。HTTPリクエストを登録されたAPIルートに行うと、WP_REST_Requestオブジェクトが自動的に生成されます。

このオブジェクトに指定されたデータ(ルートURIまたはリクエストの一部として送信されたJSONペイロードから派生)は、APIから返されるレスポンスを決定します。

リクエストは通常、HTTPを介してリモートで送信されますが、WordPressプラグインやテーマコード内からPHPで内部的に行うこともできます。このクラスを使用してできることはたくさんあり、ハンドブックの他の場所で詳しく説明されています。

レスポンス

レスポンスは、APIから返されるデータです。WP_REST_Responseクラスは、エンドポイントによって返されるレスポンスデータと対話する方法を提供します。レスポンスは要求されたデータを返すか、リクエストを満たす際に何かがうまくいかなかった場合にエラーを返すためにも使用できます。

スキーマ

各エンドポイントは特定の入力データの構造を必要とし、定義された予測可能な構造を使用してデータを返します。これらのデータ構造はAPIスキーマで定義されています。

スキーマはAPIデータを構造化し、APIが返すことができるすべてのプロパティの包括的なリストと、受け入れることができる入力パラメータを提供します。

明確に定義されたスキーマは、API内でのセキュリティの一層を提供します。なぜなら、APIに対して行われるリクエストを検証およびサニタイズできるからです。スキーマセクションでは、この大きなトピックをさらに探ります。

コントローラークラス

コントローラークラスは、REST APIレスポンスサイクル内のさまざまな動く部分を統一し、調整します。コントローラークラスを使用すると、ルートとエンドポイントの登録を管理し、リクエストを処理し、スキーマを利用し、APIレスポンスを生成できます。

単一のクラスは通常、特定のルートに対するすべてのロジックを含み、特定のルートは通常、WordPressサイト内の特定のデータオブジェクトのタイプ(カスタム投稿タイプやタクソノミーなど)を表します。