RESTの原則に準拠したAPIでは、クライアントはAPIの構造について何も知る必要がありません。むしろサーバーは、クライアントがサービスを利用するために必要な情報を提供する必要があります。HTMLフォームがその例です。サーバーは、リソースの場所と必須フィールドを指定します。ブラウザはどこに情報を送ればいいのか、どのような情報を送ればいいのかを事前に知ることはできません。どちらの形式の情報も、すべてサーバーから提供されるのです。 (この原理をHATEOAS: Hypermedia As The Engine Of Application Stateといいます。)
RESTは、Webの基本的なアーキテクチャ原理です。ウェブのすごいところは、クライアント(ブラウザ)とサーバーが、サーバーやサーバーがホストするリソースについてクライアントが事前に何も知らなくても、複雑な方法で相互に作用できるという点です。重要な制約は、サーバーとクライアントの両方が使用するメディアに同意しなければならないことです。
RESTの原則に準拠したAPIでは、クライアントはAPIの構造について何も知る必要がありません。むしろサーバーは、クライアントがサービスを利用するために必要な情報を提供する必要があります。HTMLフォームがその例です。サーバーは、リソースの場所と必須フィールドを指定します。ブラウザはどこに情報を送ればいいのか、どのような情報を送ればいいのかを事前に知ることはできません。どちらの形式の情報も、すべてサーバーから提供されるのです。 (この原理をHATEOAS: Hypermedia As The Engine Of Application Stateといいます。)
では、これが HTTP にどのように適用されるのか、また、実際にどのように実装されるのか HTTP は、動詞とリソースを中心に構成されています。主に使われている動詞は「GET」と「POST」の2つで、これは誰もが知っていると思います。しかし、HTTP標準規格では、「PUT」や「DELETE」などの動詞も定義されています。これらの動詞は、サーバーからの指示に従って、リソースに適用されます。
例えば、Webサービスで管理されているユーザデータベースがあるとします。このサービスでは、JSONをベースにしたカスタムハイパーメディアを使用しています。このハイパーメディアには、mimetype
application/json+userdb
を割り当てています(他にも、application/xml+userdb
やapplication/whatever+userdb
など、多くのメディアタイプがサポートされている可能性があります)。クライアントとサーバーは、このフォーマットを理解するようにプログラムされていますが、お互いのことは何も知りません。Roy Fielding]1が指摘するように。ベースリソース
/
へのリクエストは、以下のようなものを返すかもしれません。Request (リクエスト)
Response
メディアの説明文から、「リンク」と呼ばれるセクションから関連するリソースの情報を得られることがわかっています。これをハイパーメディアコントロールといいます。今回のケースでは、そのようなセクションから、
/user
に対して別のリクエストを行うことで、ユーザーリストを見つけることができることがわかります。リクエスト。
レスポンス
このレスポンスから多くのことがわかります。例えば、
/user
にPOST
することで、新しいユーザーを作成できることがわかります。**リクエスト
Response
また、既存のデータを変更できることもわかっています。
リクエスト。
Response
これらのリソースを操作するために、さまざまなHTTP動詞(
GET
、PUT
、POST
、DELETE
など)を使用していること、そして、クライアント側で想定している唯一の知識がメディア定義であることに注目してください。詳しくはこちらをご覧ください。
(この回答は、ポイントがずれているという批判をかなり受けています。ほとんどの場合、それは正しい批判でした。私が最初に説明したことは、RESTの本当の意味よりも、私が最初にこれを書いた数年前にRESTが通常どのように実装されていたかに沿ったものでした。本当の意味をよりよく表すために答えを修正しました)
RESTとは、様々なHTTPメソッド(主にGET/PUT/DELETE)を使ってデータを操作することです。
メソッドを削除するために特定のURLを使用するのではなく(例えば、
/user/123/delete
)、/user/[id]
のURLにDELETEリクエストを送信し、ユーザーを編集し、ユーザーの情報を取得するには、/user/[id]
にGETリクエストを送信することになります。例えば、以下のようなURLのセットがあったとします。
HTTPの "動詞 "を使って...
ロイ・フィールディングが論文1で示したRESTスタイルにシステムのアーキテクチャが適合するプログラミングのことです。これは、ウェブを(多かれ少なかれ)説明するアーキテクチャ・スタイルなので、多くの人が興味を持っています。
ボーナスの答えです。学術的にソフトウェア・アーキテクチャーを研究していたり、ウェブサービスを設計していたりしない限り、この言葉を聞いたことがある人はいないと思います。