カスタムREST APIの構築


10

ユーザー入力を受け取り、カスタムデータベースを検索し、クエリの結果を表示するWordPress.orgサイトがあります。私はこれをwpdbクラスを使用して機能させています。現在、これをAndroidアプリで機能させるようにしています。

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

  1. json-rest-api-これは、WordPressのコア機能(つまり、投稿、ページ、ユーザーなど)のみを公開しているようで、デフォルト以外のテーブルでカスタムクエリを実行する方法を確認できません。

  2. このブログ投稿は、wp mvcが2年間以上更新されていないことを除いて、私が望んでいることを正確に実行していると言っています。

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

これらのプラグインをカスタムエンドポイントで機能させる方法はありますか?または、まだ見つけていない他のプラグインはありますか?

プラグインを使用しない場合は、自分でロールする必要があると思います。私はゼロ(使用してのいずれかからこれを行うことができwpdbmsqliまたは何か)、またはのようなAPIの助けを借りてRestler

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

私が見る限り、これらは私の唯一のオプションです。この種の推奨されるベストプラクティスを教えてください。他の誰もこれをしていないとは信じがたい。私が見落としたオプションはありますか?


あなたは何に行きましたか?私はwp rest apiのカスタムルート/エンドポイントを作成しようとしています。1)ドキュメントがひどい2)Webの周りに例がありません。あなたがたどったルートを教えてください!
Jacksonkr 2015

1
Wordpressの外で独自のAPIを構築することにしましたが、同じデータベースにアクセスできます。ただし、これは単なる副次的なプロジェクトであり、他のことで忙しすぎたため、実際には回避できませんでした。私があなただったら、symfony2またはlaravelフレームワークを調べたでしょう。彼らは何かを立ち上げて実行するのが本当に速くて簡単です。
Yep_It's_Me 2015

回答:


15

TL; DR

はい、WordPressは確かにモバイルアプリのバックエンドとして機能します。はい、ページは残りのエンドポイント/インターフェースとして機能できます。いいえ、テーマテンプレートはロジックに適した領域ではありません。独自のプラグインを作成します。


ポインタ

他の誰もこれをしていないとは信じがたい。

私のために、持っています。一回以上。そして、私は私が一人ではないことを確信しています。「だれもそれについて広範囲にブログを書いたことがない」というのは、おそらくより正しい概念です。

プラグインを使用しない場合は、自分でロールする必要があると思います。私はこれを最初から(wpdb、msqliなどを使用して)、またはRestlerなどのAPIを使用して実行できます。

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

テーマテンプレートは、調査対象ではありません。テーマは視覚的なプレゼンテーションを目的としています。RESTエンドポイントは、視覚的な外観をまったく必要としません。

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

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


WordPressをエンドポイント/バックエンドとして使用することは理にかなっていますか?

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


3
本当に良い答え+1。
gmazzap

2
それを倍にします。+1
カイザー2014

本当に素晴らしい答えをありがとう!それから、私が持っている2つのオプションは次のとおりです。1。自分のプラグインを作成します。2.別のサービスを記述します。エンドポイントに必要なのは、いくつかのGETパラメーターを取り、JSON本文を返すことだけなので、「使用する数行のコードを保存するためにコア全体をロードするだけでwpdbは価値がない」ため、独自のサービスを作成する必要があると思います。
Yep_It's_Me 2014

0

APIエンドポイントプラグインは、特にMySQLに精通している場合は、すべてのニーズをカバーする必要があります。次の手順を実行します。

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

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

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


APIエンドポイントは私のプロジェクトにとって興味深いように見えますが、Twig Anythingを必要とします。パブリックサブスクリプションを許可しないブログへのログインが必要なため、取得はほとんど不可能です。
mettjus

私はそれが無料ではないことに気づきました...
mettjus '09 / 09/13

0

WP REST APIの新しいバージョンはベータ版ですが、カスタムRESTエンドポイントの登録方法に関するかなり良いドキュメントがあります。また、バージョン1でそれがどのように行われるかについての非常に小さな言い回しもあります。ベータ版が安定している、または安定していることが保証されていないため、これを試してみます。登録したメソッド内からwpdbを使用できると思います。実際には、ACFのものを使用していて、phpのオブジェクトにそれを取り込んで、angularJSを使用して、検索可能/ソート可能な優れたマルチプロパティインデックスページを作成しています。

ドキュメントからのWWP REST API 1と2の比較

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.