42

(私は RESTFul に慣れていません。私の概念が間違っている場合は修正してください)

RESTFul アーキテクチャでは、すべてのアクションを URL にマップします。「記事を投稿する」をクリックすると、実際には URLhttp://example.com/といくつかのデータである可能性がありますaction=post&content=blahblah

投稿したいが Web ページ全体を更新したくない場合は、javascript の XMLHTTPRequest を使用できます。投稿してからコンテンツを取得し、ページの div に挿入します。これらのアクションはすべて非同期です。

WebSocket次に、という名前のものがあり、それが wrapper であることを知っていますsocket.io。クライアントとサーバー間の通信に「メッセージ」を使用します。「投稿」をクリックすると、クライアントはサーバーを呼び出しsocket.send(data)て待機しますclient.send(data)。それは魔法です。しかし、URL はどうでしょうか。

繰り返すことなく、2 つのモデルの両方を使用することは可能ですか? 言い換えれば、すべてのアクションには URL があり、そのうちのいくつかはリアルタイムで (socket.io? によって) ユーザーと対話できます。

また、私はこれを行うべきですか?非常にインタラクティブな Web プログラム (ゲームなど) では、RESTFul はまだ意味がありますか?

4

2 に答える 2

41

HTTP 経由で REST にマップするアクションのハンドラーを定義しています。POST と GET は通常、エンティティに対する更新とクエリを指します。両方のコンテキストで使用できるこれらの CRUD 操作の汎用バージョンのハンドラーを定義できない理由はまったくありません。私がこれを行う一般的な方法は、「ルート」の概念をリアルタイム トランスポートに導入し、それらを同じ CRUD ハンドラにマッピングすることです。

セッションがあり、同じ ACL を課すことができます。

 +---------------------------------+
 |                                 |
 |      BROWSER                    |
 |                                 |
 +--+--^-------------------+---^---+
    |  |                   |   |
    |  |                   |   |
 +--v--+---+            +--v---+---+
 |         |            |          |
 | HTTP    |            | SOCKET.IO|
 +--+---^--+            +--+---^---+
    |   |                  |   |
 +--v---+------------------v---+---+
 |                                 |
 |        ROUTING/PUBSUB           |
 +-+--^-------+--^-------+--^------+
   |  |       |  |       |  |
 +-v--+--+  +-v--+--+  +-v--+-+
 |       |  |       |  |      |
 | USERS |  | ITEMS |  |ETC   |
 +-------+  +-------+  +------+
     ENTITY CRUD HANDLERS
于 2011-06-15T22:31:20.727 に答える