① REST APIとは

WordPress REST APIは、サイトURLに/wp-json/を付けてアクセスすると、投稿・固定ページ・カテゴリ・ユーザー情報などをJSON形式で取得できる標準機能です。WordPress 4.7(2016年)以降、追加のプラグインなしで全サイトに搭載されており、ブロックエディタ(Gutenberg)の保存処理や、公式モバイルアプリとの通信にも使われています。「外部と連携するための特別な機能」ではなく、既に裏側で常時動いている仕組みだと理解しておくとよいでしょう。

② 主な活用例

③ 有効になっているか確認する方法

ブラウザで自サイトの/wp-json/(例:https://example.com/wp-json/)にアクセスし、JSON形式のデータが表示されればREST APIは通常通り動作しています。エラーが表示される場合は、セキュリティプラグインやサーバー側の設定でブロックされている可能性があります。

④ 外部連携時の認証方法

外部サービスや自作のスクリプトからREST API経由でデータを書き込む(投稿を作成する等)場合は、認証が必要です。WordPress 5.6以降は「アプリケーションパスワード(Application Passwords)」という機能が標準搭載されており、追加プラグインなしで安全な連携ができます。

より高度な認証が必要な場合JWT(JSON Web Token)やOAuth 2.0など、より複雑な認証方式が必要な場合は、REST API認証プラグインのような専用プラグインの導入を検討してください。

⑤ セキュリティ上の注意点

ユーザー情報の露出に注意デフォルト設定では、/wp-json/wp/v2/usersエンドポイント経由でユーザー名の一部が外部から取得できてしまいます。この情報はブルートフォース攻撃の足がかりに利用されることがあるため、REST API認証プラグイン等を使い、不要なエンドポイントへのアクセスを制限することを推奨します。

REST APIはブロックエディタなど多くの機能が依存しているため、丸ごと無効化することは推奨されません。「必要なエンドポイントは残し、不要なもの(ユーザー一覧等)だけを制限する」という考え方で対策するのが基本です。

⑥ GraphQLという選択肢

ヘッドレスCMSとして本格的にフロントエンドを構築する場合、REST APIの代わりにWPGraphQLを使う選択肢もあります。REST APIは決められた形式でデータを返しますが、GraphQLはクライアント側で必要なデータだけを指定して取得できるため、過剰なデータ転送を防ぎパフォーマンスを最適化しやすいという特徴があります。React・Next.js・Gatsby・Vue.js等と組み合わせる本格的なヘッドレスCMS構築を検討している場合は、あわせて比較してみてください。

⑦ よくある質問(FAQ)

REST APIは無効化すべきですか?
多くのサイトでは、ブロックエディタや一部プラグインの動作にREST APIが使われているため、完全な無効化は推奨されません。外部連携を全く使わない場合でも、無効化ではなく不要なエンドポイント(ユーザー情報等)だけを制限する方法が安全です。
REST APIを外部から使うには、パスワードをそのまま使ってよいですか?
いいえ、ログインパスワードをそのまま外部サービスに渡すのは避けてください。WordPress 5.6以降は「Application Passwords」というアプリ専用パスワードを発行できる機能が標準搭載されており、これを使えばメインパスワードを渡さずに、個別に無効化可能な認証情報で連携できます。
REST APIとWPGraphQLはどちらを使うべきですか?
シンプルな連携や、WordPress公式アプリ・多くのプラグインとの互換性を重視するならREST APIで十分です。React・Next.js・Gatsby等でヘッドレスCMSを構築し、必要なデータだけを効率よく取得したい場合はWPGraphQLの方が向いています。
自分のサイトでREST APIが有効になっているか確認する方法は?
ブラウザで「サイトURL/wp-json/」にアクセスし、JSON形式のデータが表示されれば有効です。エラーが表示される場合は、セキュリティプラグインやサーバー設定でブロックされている可能性があります。

関連コンテンツ

↑