ReST over websocketsは可能ですか?
質問
ReSTfulリクエストを取り込み、XMPPに変換してXMPPサーバーに配信するWebベースのチャットアプリケーションを開発することを計画しています。
この種のチャット ベースのアプリケーションに WebSocket を使用すると、イベント (または応答) を非同期に配信できるため、有望に見えました。しかし、ブラウザから要求を転送するための基礎的なプロトコルとして Web ソケットを使用する場合、これはまだ ReSTful デザインと見なすことができますか? もしそうなら、URI、動詞(GET、POST...)、パラメータはどのようにwebsocketメッセージで表現されるのでしょうか?xml/jsonでそれらをラップして送信しますか?
また、ReSTfulアーキテクチャは、セッション状態がサーバーに保存されないことを述べています。しかし、このケースでは、XMPPクライアントセッションが作成されると、このセッションの状態がサーバーに保存されます(ステートレス制約に違反します)。
どのように解決するのでしょうか?
REST は、プロトコルを押し付けないアーキテクチャスタイルです。ですから、そうです。お望みであれば、Web ソケットを使った REST、HTTP を使った REST、FTP を使った REST を行うことができます。
HTTPを使用する主な理由は、HTTP経由で任意のコンポーネントやプログラミング言語と通信するのが簡単でかなりシンプルであることと、HTTPが複数の仲介者(プロキシ、ファイアウォールなど)を持つ分散環境をサポートするからです。
私の戯言です。 もしあなたがRESTlibanで、Roy Fieldingの論文が真実の源であるならば、動詞は意味論の一部として決して認められません。URIがセマンティックなのです。異なるアクションに異なる動詞を使用することは、HTTP上のRESTのエレガントな進化ですが、"truth"の一部ではありません。のシナリオを確認することができます。 rest over HTTP のシナリオは、第 6 章で Roy が評価した のシナリオを確認できます。動詞については言及されていません。そして、それは評価シナリオであり、仕様ではないことに注意してください。
TLDRです。
インターネットを介したリアルタイムの双方向通信が必要で、クライアントがWebブラウザの場合、最良の選択はWebソケットです。そして、RESTfulなWebサービスを実装するために、Webソケットの上にアプリケーションレベルのプロトコルを実装することができます。
関連
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] Long-Polling、Websocket、Server-Sent Events (SSE)、Cometとは何ですか?
-
[解決済み] WebSocketとサーバー送信型イベントの比較/EventSource
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] RESTリソースの命名規則はSingularとPluralのどちらを使用すべきですか?
-
[解決済み] RESTを理解する。動詞、エラーコード、認証
-
[解決済み] socket.ioとwebsocketの違いについて
-
[解決済み] RESTアプリケーションはステートレスであることが前提である場合、セッションはどのように管理するのですか?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み] GRPCとRESTはどう違うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] RESTリソースの命名規則はSingularとPluralのどちらを使用すべきですか?
-
[解決済み] URLクエリパラメータを含むHTTP POST -- 良いアイデアかどうか?
-
[解決済み] cURLでPUTリクエストを行うには?
-
[解決済み] 検索のためのRESTfulなURL設計
-
[解決済み] リソースとエンドポイントの違いは何ですか?
-
[解決済み] RESTを使った複数レコードの削除
-
[解決済み] HATEOAS(REST-architecture)の実例集 [終了しました]。
-
[解決済み] NetflixやTwitterのようなWebサービスにはRESTとSOAPのどちらを使うべきか?[クローズド]
-
[解決済み] REST API DESIGN - 異なるパラメータを持つが同じURLパターンでRESTを通してリソースを取得する。
-
JSON Web Signature(JWS)とJSON Web Token(JWT)はどう違うのですか?