52

RESTful-nessの背後にある基本的な考え方を理解する(私は思う)。HTTPメソッドをセマンティックに使用します-GETgets、PUT puts、DELETEdeletesなど...そうですか?私はRESTの背後にある考え方を理解していると思いましたが、それをHTTP実装の詳細と混同していると思います。休息の背後にある原動力となる考えは何ですか、なぜこれが重要なものになるのですか?私の懐中電灯が決して輝かなかったインターネットの片隅で、人々は実際にそれを長い間使用していましたか?


Googleの講演では、RESTful実装と多くの相乗効果があるAtomPublishingProtocolsについて言及しています。それについて何か考えはありますか?

4

5 に答える 5

56

REST は次のようになります。

POST /user
fname=John&lname=Doe&age=25

サーバーは次のように応答します。

201 Created
Location: /user/123

その後、ユーザー情報を取得できます。

GET /user/123

サーバーは次のように応答します (XML 応答を想定)。

200 OK
<user><fname>John</fname><lname>Doe</lname><age>25</age></user>

更新するには:

PUT /user/123
fname=Johnny
于 2009-07-04T05:59:18.020 に答える
19

これが私の見解です...

RESTfulサービスを作成する魅力は、数十の機能メソッドを使用してWebサービスを作成するのではなく、次の4つのメソッド(作成、取得、更新、破棄)で標準化することです。

  • 役職
  • 得る
  • 置く
  • 消去

RESTは、アプリケーション層でのメッセージング形式の標準化も表すため、人気が高まっています。HTTPはRESTの4つの基本的な動詞を使用しますが、HTMLの一般的なHTTPメッセージ形式は、アプリケーションを構築するための契約ではありません。

私が聞いた最も良い説明は、TCP/IPとRSSの比較です。

イーサネットは、物理ネットワークの標準化を表しています。インターネットプロトコル(IP)は、スタックの上位にある標準化を表しており、いくつかの異なるフレーバー(TCP、UDPなど)があります。「伝送制御プロトコル」(保証されたパケット配信)の導入により、通信契約が定義され、アプリケーション層のまったく新しいサービスセット(FTP、Gopher、Telnet、HTTP)が利用できるようになりました。

同様に、「プロトコル」としてXMLを採用し、メッセージ形式の標準化を始めています。RSSは、すぐに多くのRESTfulサービスの基盤になりつつあります。GoogleのGDataAPIはRSS/ATOMのバリアントです。

「デスクトップガジェット」は、この誇大宣伝をうまく実現したものです。単純なクライアントは、一般的なAPIとメッセージング標準を使用して、基本的なWebコンテンツまたは複雑なマッシュアップを利用できます。

于 2008-10-28T15:22:47.060 に答える
12

HTTP は現在十分に活用されておらず、誤用されています。

通常、HTTP のメソッドは GET と POST の 2 つだけを使用しますが、DELETE、PUT など、他にもいくつかあります ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html ) 。

したがって、RESTful URL (アプリケーション内の各ドメイン オブジェクトにはhttp://yoursite.com/path/to/the/resourceの形式の一意の URL があります) で定義されたリソースと適切な HTTP 実装があれば、オブジェクトを操作できます。文章を書くことによるドメイン:

GET http://yoursite.com/path/to/the/resource

削除http://yoursite.com/path/to/the/resource

POST http://yoursite.com/path/to/the/resource

建築は素晴らしく、すべてです。

しかし、これは単なる理論的な見方であり、実際のシナリオは、私の前の回答に投稿されたすべてのリンクで説明されています。

于 2008-10-28T14:23:32.577 に答える
10

歴史に行きましょう。ロイ フィールディング研究について話しましょう – 「<a href="https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf" rel="noreferrer">建築様式とネットワークベースのソフトウェアアーキテクチャの設計」. 大きな紙で、いろいろなことが書かれています。しかし、標準的なエンジニアとして、REST (Representational State Transfer) の明確な意味と、そのアーキテクチャ スタイルとは何かを説明するにはどうすればよいでしょうか。

これが私の説明方法です - 「RESTとは」。

ルーター、サーバー、ファイアウォール、クラウド インフラストラクチャ、スイッチ、LAN、WAN など、さまざまなハードウェア上で実行されているこの www (ワールド ワイド ウェブ) を参照してください。この www (ワールド ワイド ウェブ) の全体的な目的は、ハイパーメディアを配布することです。このワールド ワイド ウェブには、情報ベースのサービス、ウェブサイト、YouTube チャンネル、動的ウェブサイト、静的ウェブサイトなど、さまざまなサービスが備わっています。このワールド ワイド ウェブは、HTTP プロトコルを使用して、クライアント/サーバー メカニズムで世界中にハイパーメディアを配信します。この HTTP プロトコルは、TCP/IP またはその他の適切なネットワーク スタック上で動作します。

このHTTP プロトコルは、「配布のプロトコル」または「配布のアーキテクチャ スタイル」を管理するために 8 つのメソッドを使用しています。つまり、これらの 8 つのメソッドは、OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT です。

しかし、この HTTP の上で、Web アプリケーションはハイパーメディアを配布する独自の方法を使用しています。 HTTP 上のそのような配布チャネル。

Roy Fielding Researchによると、HTTP のこれら 8 つのメソッド OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT は、さまざまなハードウェア リソースとクライアントとのネットワーク スタックの上で、HyperMedia を世界中に配信するのに非常に成功しています。 /server メカニズム、Web ベースのアプリケーションでも同様の戦略を使用してみませんか。この GET、POST、DELETE、および PUT が最もよく使用されます。そのため、4 つの方法で HyperMedia を世界中に配信します。

REST APIアーキテクチャ スタイルのアプリケーションでは、Web アプリケーションは、オブジェクト エンティティのすべてのセット (例: 顧客はエンティティ) と可能な操作 (例: '顧客情報の取得ベース顧客ID') に。これらのエンティティで可能な操作は、作成、取得、更新、削除という 4 つの主要な操作またはメソッドで設計する必要があります。これらのエンティティはリソースと呼ばれ、 JSON や XML などの形式で表示または表現されます。Create、Retrieve、Update、Delete (CRUD)メソッドを呼び出して、サーバーに存在するリソースに対して適切な機能を実行するクライアント(ブラウザ)があります。

しかし、 Representationの概念で説明したように、ビジネス ロジックまたはオブジェクトのエンティティを表す方法を意味します。しかし、「State Transfer」はどうですか?

The State Transferは、クライアントからサーバーへの「通信の状態」について語っています。クライアントからサーバーへの「状態転送」の設計について説明します。たとえば、クライアントは最初に操作「顧客の作成」を呼び出し、これを呼び出した後、顧客の次の状態または「クライアント」が呼び出すことができる顧客の状態になります。その状態は、「作成されたクライアント データを取得する」、「クライアント データを更新する」などです。

于 2015-09-11T02:46:57.047 に答える
5

REST は、リソースが定義され、対処されるアーキテクチャです。

REST を最もよく理解するには、REST アーキテクチャを実際に実装する際の一連のガイドラインを提供するResource Oriented Architecture (ROA)を調べる必要があります。

REST は HTTP 経由である必要はありませんが、最も一般的です。ただし、REST は HTTP の作成者の 1 人によって最初に作成されました。

于 2008-10-28T13:59:55.993 に答える