web-dev-qa-db-ja.com

カスタムを構築する REST API

私はWordPress.orgサイトを持っています。そこにはユーザー入力を受け取り、カスタムデータベースを検索し、そしてクエリの結果を表示します。 wpdbクラス を使ってこれを動かしています。今、私はこれをAndroidアプリで動かそうとしています。

私が理解していることから、RESTfulなサーバーを構築することはこの種のことのための現在の「ベストプラクティス」です。私はこれを行うのを助けることができるいくつかのプラグインを調べました、そして私は出くわしました:

  1. json-rest-api - これは、WordPressのコア機能(投稿、ページ、ユーザーなど)のみを公開しているように見えます。デフォルトテーブル。

  2. このブログ記事 によると、 wp mvc は、2年以上更新されていない点を除いて、私が望むとおりの動作をします。

  3. Jetpack もありますが、私が見たところでは、json-rest-apiはこの更新版であり、コア機能のみを提供するようです。

これらのプラグインのいずれかをカスタムエンドポイント用に機能させる方法はありますか?それとも私がまだ見つけていない他のプラグインはありますか?

私がプラグインを使わないのなら、私は自分でロールバックしなければならないだろうと思います。私はこれを最初から(wpdbmsqliなどを使って)行うことも、 Restler のようなAPIを使って行うこともできます。

自分のテーマでテンプレートを作成した場合は、そこにRESTを入れ、そのテーマをダッシュ​​ボード内のページに割り当てますか。それとも別のサーバーをWordPressとは別に実行したほうがよいでしょうか。

私が見ることができる限りでは、これらは私の唯一の選択肢です。このようなことに対して推奨されるベストプラクティスは何かを知りたいのですが。他にだれもこれをしていないと信じるのは難しいと思います。見落としているオプションはありますか?

10
Yep_It's_Me

TL、DR

はい、WordPressは確かにモバイルアプリのバックエンドとして機能することができます。はい、ページは残りのエンドポイント/インターフェースとして機能できます。いいえ、テーマテンプレートはロジックにとって正しい領域ではありません。あなた自身のプラグインを書いてください。


ポインタ

他にだれもこれをしていないと信じるのは難しいと思います。

私は、1つには、持っています。一回以上。そして、私は一人じゃないと確信しています。 「誰もそれについて広範囲にブログを書いていない」というのがおそらくもっと正しい考えです。

私がプラグインを使わないのなら、私は自分でロールバックしなければならないだろうと思います。私はゼロから(wpdb、msqliまたは何かを使って)、あるいは Restler のようなAPIの助けを借りてこれを行うことができます。

私は "Restler"を知りません、そしてそれはとにかくこのスタックの範囲外です。
「wpdb、msqliなどの使用」に関する限り、データベースに(受信した)データを保存するためにwpdbを使用することになるでしょうが、エンドポイントロジックには関係ありません。

テーマテンプレートはあなたが検討すべきものではありません。テーマは視覚的表現のためのものです。 RESTエンドポイントは外観をまったく必要としません。

ショートコード を使用して、エンドポイントを使用するページにエンドポイントを挿入します。

ショートコードハンドラ/コールバックに HTTP POST または _ get _ のいずれかをリスンさせ、それに応じてデータ保存または他の二次メソッドを呼び出します。


WordPressをエンドポイント/バックエンドとして使用するのは意味がありますか?

場合によります。
データを保存するためのエンドポイントだけが必要な場合:いいえ。wpdbを使用して数行のコードを保存するためだけにコア全体をロードすることには意味がありません。
Webブラウザを介してログインでき、表形式のデータを表示できるバックエンドが必要な場合は、複数のアクセスレベル/ユーザーの役割と権限でも、データを変更する方法を提供できます。理にかなっている。

14
Johannes Pille

APIエンドポイント 特に、MySQLに精通している場合は、/ pluginがすべてのニーズをカバーするはずです。次のようにします。

  1. 新しいTwigテンプレートを作成し、MysQLクエリを入力してWordPressサイトからデータを取得し、Twig構文を使用してデータを任意の形式で出力します。例えば、JSONです。

  2. 新しいAPIエンドポイントを作成し、名前を付けて、ステップ1で作成したTwigテンプレートを使用するように構成します。

完了したら、作成したいエンドポイントごとにステップ1と2を繰り返します。 APIエンドポイントは標準のWordPress認証システムを使用するため、WordPressに別のユーザーを作成し、そのユーザー名/パスワードを使用してAPIエンドポイントにアクセスするのが最善です。

0
Meglio

WP REST AP​​Iの新しいバージョンはベータ版ですが、カスタムRESTエンドポイントの登録方法に関する優れたドキュメントがあります。それがどうやってそれがバージョン1で行われることができるかについての非常に小さな曖昧さもあります、ベータが安定しているか安定していることを保証されないので私は試してみるつもりです。登録したメソッドの中からwpdbを使用できると思います。私は実際には単にACFのものを使って、それを私のphpの中のオブジェクトに事前分析して、AngularJSで検索可能/分類可能なマルチプロパティインデックスページを作成しています。

彼らのドキュメントにあるWWP REST AP​​I 1と2の比較

0
Kyle Zimmer