BT

JSON-RPCについて

| 作者: Jonathan Allen フォローする 523 人のフォロワー , 翻訳者 尾崎 義尚 フォローする 0 人のフォロワー 投稿日 2017年12月18日. 推定読書時間: 2 分 |

原文(投稿日:2017/12/14)へのリンク

読者の皆様へ: ノイズを減らして、重要なものを見逃さないために、私たちは一連の機能を実装した。興味のあるトピックを選択してEメールとWeb通知を受け取る

昨日のLanguage Server Protocol Support for Visual Studioに対するレポートにおいて、私たちはLCPがJSON-RPC 2.0上に構築されていると述べた。これは10年以上前に作成されたものだが、SOAPやRESTほどは知られていない。

名前の通りJSON-RPCはJSONを使ったリモートプロシージャーコールに使われる。哲学的にはRESTとはRESTがデータ中心である点で異なっている; 主にドキュメントやレコード作成、編集、抽出などの用語でコードを記述する。RPCは外部プログラムに存在する関数の呼び出しを重視する。もちろん関数はドキュメントを操作することもあるかもしれないし、REST呼び出しも単純にいくつかのデータを保存するだけでないかもしれない。

多くの点でJSON-RPC 2.0はSOAPの計量版と考えられる。SOAPのようにメッセージが最終的にどう見えるかが主な関心である。(stdio, sockets, HTTP, 名前付きパイプなど)のトランスポート層はプロトコルの範囲外である。

JSON-RPCはメッセージキューのように非同期転送にも使用できる。これはそれぞれのリクエストには相関Idを含めることが必要であるため実現できる。複数の接続をすることなく、同時に複数の要求保留にできるため、通常のHTTPよりも効果的な通信が可能となる。

もうひとつの便利なJSON-RPCの機能はバッチ処理のサポートである。つまり、ひとつのメッセージには配列で無制限に要求を含めることができる。応答は任意の順序かもしれないし、ひとつかもしれないし、配列かもしれないので、相関Idは重要なのである。

JSON-RPCはまた「notification」と呼ばれるものをサポートしている。Notificationsは要求と似ているが相関Idが含まれない。そのため、クライアントにエラーを通知するだけでサーバーは応答を返すことができない。したがって、notificationsの使用はお勧めできない。

注: MicrosoftはLanguage Server Protocolにおいてnotificationsを保留中の要求をキャンセルするためにだけ使われる。それでも、言語サーバーはそれらを遵守する必要はない。

エラーはコードとメッセージの両方を仕様して報告される。エラーコードは-32000から-32768の間がプロトコルで予約されており、「メソッドが見つかりません」や「パラメータが不正です」などの例外によって使われる。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT