一貫したインフラストラクチャ
REST APIは一貫性があり、人間が読むことができます。それは自己文書化です。
GET wp-json/wp/v2/posts
それが何をするかはかなり明確です。これは、GET
いくつかの記事をよ。
名前空間:wp
、バージョン:v2
およびオブジェクトコレクションがありますposts
あなたは何を推測できますかGET wp-json/wp/v2/posts/5
?方法:GET wp-json/wp/v2/posts/5/comments
方法:GET wp-json/shop/v2/orders/345/lines/11/price
開発者はそれを見ることで簡単に推測でき、ドキュメントを読まなくても11
注文のラインの価格を取得でき345
ます。開発者shop
は、名前空間があるため、プラグインからのものであることを簡単に知ることができます。
どうPOST /wp-json/v2/posts title=New Blog Post
ですかPUT /wp-json/v2/posts title=New Title
それも非常に明確です。新しい投稿を作成します。ところで、新しい投稿のIDを返します。AJAXやREST APIについてのものではありません。AJAXは、単にREST APIにアクセスするテクノロジーです。一方、以前は、次のような一連の抽象AJAX関数名を考え出す必要がありました
get_price_for_lineitem( $order, $line )
。それは単に数値を返すのでしょうか、それともJSONオブジェクトを返すのでしょうか?ドキュメントはどこにあるのかわかりません。ああ... ajax呼び出しget_order_line_price
またはget_lineitem_price
でした。
既存のwp-json
APIは、独自のエンドポイントを作成する際に従うべき基本モデルを提供するため、開発者はこれらの決定を行う必要はありません。確かに、プラグインまたはAPI開発者はこれらのルールを破ることができますが、一般に、既に設定されている標準に従うことは簡単であり、ほとんどの開発者は既に設定されているパターンに従うほうがはるかに優れています(jQueryパターンの普及状況をご覧ください)。
気を散らすことのない抽象
どのようにPOST /wp-json/mysite/v1/widgets title=Foobar
機能するか気にしますか?いや。新しいものを作成したいだけでWidget
、IDを返したいです。ページを更新せずに、フロントエンドのフォームから実行したいです。URLにリクエストを行う場合、それがPHP、C#、ASP.NET、またはその他のテクノロジーのいずれであるかは気にしません。新しいウィジェットを作成したいだけです。
REST APIは、バックエンドをフロントから切り離します。技術的には、APIが十分であれば、バックエンドスタック全体を変更できます。同じREST API構造を維持している限り、APIに依存するものは影響を受けません。
Widgets
オブジェクトのコレクションのような名詞とWidget/2
単一のエンティティを示すような名詞/識別子を使用して、REST APIが十分にシンプルで一貫している場合、多かれ少なかれ基本的なデータベースの配管であるため、非常に異なるテクノロジーでそのAPIを書くことは本当に簡単ですコード。
標準HTTPリクエスト動詞を使用します。
REST APIは、Webがどのように機能するかというコアと、標準データCRUD関数にマップするVERB(read:action)を利用します。
CREATE : POST
READ : GET
UPDATE : PUT/PATCH
DELETE : DELETE
HTTP動詞は他にもありますが、それらは基本です。インターネット上のすべてのリクエストはこれらの動詞を使用します。REST APIは、リクエストに基づいてWebが構築されるモデルの上に配置されます。間に通信レイヤーや抽象化モデルは必要ありません。これはURLへの標準のhttp要求であり、応答を返します。あなたはそれよりはるかに簡単になることはできません。
基本的に、開発者はWebが実際にどのように機能するかをよりよく認識し、基礎となるプロトコルがどのように機能するかを理解するようになると、より効率的で優れた製品を作成します。