web-dev-qa-db-ja.com

を呼び出すために使用するメソッド REST API?

私はWordPress用のプラグインを構築しています。これはリモートのREST AP​​Iエンドポイントと通信し、WordPressの公開ビューにデータをリスト形式で表示します。

私はAPIを呼び出すために行く必要がありますどのメソッド -

  1. wp_remote_get()を使ってリクエストフォームサーバを作る?

    長所 -

    A.基本的なfilterレイアウトを変更するためにactionhookHTMLを与えることができます。

    B. transientを使ってデータをキャッシュすることができます。

    短所 -

    A.遅くなります。

  2. AJAXを使用してブラウザからAPIサーバーへの直接呼び出しを行うことによって?

    長所 -

    A.それはずっと速いでしょう。

    B.基本的なHTMLレイアウトを変更するために上書きする関数を与えることができます。

    短所 -

    A. Wordpress hooksを提供できません。

3
Sunny Batabyal

一般に、情報をソースから直接取得する方が常に得策です。しかし、セキュリティについて考える必要があります。別のドメインからREST AP​​Iクライアントを使用するには、そのドメインに対してCORS保護を無効にする必要があります。それに関連するリスクの量は、ドメインがどの程度結び付いているかによって異なります(それらは同じ管理者、同じ種類のプライベートデータなどを持っていますか)。これは軽く行われるべきではなく、「メイン」サイトに対する新たな攻撃ベクトルを開くので、考える必要があります。

OTOHデータをキャッシュできない場合は、1つではなく2つのリクエストを実行するのが「バカ」です。

正しい実装は、おそらくクッキーを共有しない異なるドメインを持つ「メイン」サーバ上のAPIエンドポイントを「オーバーロード」することです。これはCORS保護の必要性を排除します。 (これは明らかにユーザー認証があなたがAPIでやろうとしていることのために必要とされないと仮定します)

2
Mark Kaplun

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/ /

0
figuitiko