ブログやメディアサイトをSPA(シングルページアプリケーション)で制作したいけど、記事を更新する管理画面まで自作するのは辛いことってありますよね?
わたしも趣味で新しくメディアサイトをSPA(Vue.jsとNuxt.js)で作ろうとしているのですが、記事の更新のために管理画面を自分で作るのは嫌になり、WordPressで代用できないかと考えました。
そして、WordPressを記事配信用のAPIとして使うために、以下の3つの方法を考えました。
- WordPressで使用しているDBを参照するプログラムを書く
- WordPressで使用しているDBからデータを抽出し、配信用に精製して、配信用DBに格納する
- プラグインを使う
結論として、3のプラグインを使う方法を採用したのですが、後々2の方法にシフトする予定です。
なぜ、3の方法を採用し、その後2にシフトすることにしたのか、それぞれの方法の特徴を含めて紹介します。
1.WordPressで使用しているDBを参照するプログラムを書く
WordPressを接続しているMySQLサーバーに対して、データを取りに行くプログラムを書き、配信サーバーにする方法です。
この方法は真っ先に選択肢から外しました。
その理由は、WordPressで自動生成されるDBの構造は独特なので、そのDBを直接参照して配信するプログラムを書くのは骨が折れると判断したからです。
また、プログラムを書く工数がかかる割に、DB構造を変えることが出来ないため、柔軟性のない配信サーバーになってしまいます。
2.WordPressで使用しているDBからデータを抽出し、配信用に精製して、配信用DBに格納する
WordPressを接続しているMySQLサーバーから配信に必要なデータを抽出し、配信しやすいきれいなデータ形式に変更し、別立てした配信用DBに格納する方法です。
この方法は、自由にデータ構造を設定できるため、様々な要望を満たす柔軟な配信サーバーを制作することが出来ます。
自由度が一番高いこの方法ですが、
- 別立てでDBを用意する
- WPのMySQLサーバーからデータを取得する
- そのデータを精製して、別立てしたDBに格納する
- 記事配信用APIのプログラムを書く
とやらなければならないことが大量にあります。
そのため、とりあえず、メディアを立ち上げたいという初期のフェーズでは不採用にし、将来的にこの方法にシフトする予定です。
3.プラグインを使用する
はい、一番楽で確実な方法です笑
【WP REST API】(http://v2.wp-api.org/)
このプラグインをWPにインストールして有効化すれば、一瞬でWPサイトがREST APIを提供するサイトになります。
1 |
https://○○.com/wp-json/wp/v2/posts/ |
とすれば、記事一覧をgetするエンドポイントになりますし、
1 |
https://○○.com/wp-json/wp/v2/posts/1 |
の場合は、記事ID1の記事情報を取得するエンドポイントになります。
必要な情報はすべて手に入る上に、一瞬で制作できるという手軽さもある方法ですが、プラグインで提供される要件しか満たせないというデメリットもあります。
最初はプラグインを使い、将来的にリッチな仕様に変えていく
メディアを立ち上げるときは、公開することがいちばん重要なので、プラグインを使いスピード優先で開発することを選択しました。
しかし、将来的には自作のAPIを制作して、有料記事機能やログイン機能なども備えたメディアを制作するつもりです!