私はWordPress用のプラグインを構築しています。これはリモートのREST APIエンドポイントと通信し、WordPressの公開ビューにデータをリスト形式で表示します。
私はAPIを呼び出すために行く必要がありますどのメソッド -
wp_remote_get()
を使ってリクエストフォームサーバを作る?
長所 -
A.基本的なfilter
レイアウトを変更するためにaction
とhook
HTML
を与えることができます。
B. transient
を使ってデータをキャッシュすることができます。
短所 -
A.遅くなります。
AJAX
を使用してブラウザからAPIサーバーへの直接呼び出しを行うことによって?
長所 -
A.それはずっと速いでしょう。
B.基本的なHTML
レイアウトを変更するために上書きする関数を与えることができます。
短所 -
A. Wordpress hooks
を提供できません。
一般に、情報をソースから直接取得する方が常に得策です。しかし、セキュリティについて考える必要があります。別のドメインからREST APIクライアントを使用するには、そのドメインに対してCORS保護を無効にする必要があります。それに関連するリスクの量は、ドメインがどの程度結び付いているかによって異なります(それらは同じ管理者、同じ種類のプライベートデータなどを持っていますか)。これは軽く行われるべきではなく、「メイン」サイトに対する新たな攻撃ベクトルを開くので、考える必要があります。
OTOHデータをキャッシュできない場合は、1つではなく2つのリクエストを実行するのが「バカ」です。
正しい実装は、おそらくクッキーを共有しない異なるドメインを持つ「メイン」サーバ上のAPIエンドポイントを「オーバーロード」することです。これはCORS保護の必要性を排除します。 (これは明らかにユーザー認証があなたがAPIでやろうとしていることのために必要とされないと仮定します)
REST APIにはJavaScript/Backboneクライアントライブラリが含まれているので、このようにすることができます。
// Create a new post
var post = new wp.api.models.Post( { title: 'This is a test post' } );
post.save();
// Load an existing post
var post = new wp.api.models.Post( { id: 1 } );
post.fetch();
参照: https://developer.wordpress.org/rest-api/using-the-rest-api/backbone-javascript-client/ /