發(fā)送一個請求對象至服務(wù)端代表一個rpc調(diào)用, 一個請求對象包含下列成員:
jsonrpc
指定JSON-RPC協(xié)議版本的字符串,必須準(zhǔn)確寫為“2.0”
method
包含所要調(diào)用方法名稱的字符串,以rpc開頭的方法名,用英文句號(U+002E or ASCII 46)連接的為預(yù)留給rpc內(nèi)部的方法名及擴(kuò)展名,且不能在其他地方使用。
params
調(diào)用方法所需要的結(jié)構(gòu)化參數(shù)值,該成員參數(shù)可以被省略。
id
已建立客戶端的唯一標(biāo)識id,值必須包含一個字符串、數(shù)值或NULL空值。如果不包含該成員則被認(rèn)定為是一個通知。該值一般不為NULL [1],若為數(shù)值則不應(yīng)該包含小數(shù) [2]。
服務(wù)端必須回答相同的值如果包含在響應(yīng)對象。 這個成員用來兩個對象之間的關(guān)聯(lián)上下文。
[1]?在請求對象中不建議使用NULL作為id值,因?yàn)樵撘?guī)范將使用空值認(rèn)定為未知id的請求。另外,由于JSON-RPC 1.0 的通知使用了空值,這可能引起處理上的混淆。
[2]?使用小數(shù)是不確定性的,因?yàn)樵S多十進(jìn)制小數(shù)不能精準(zhǔn)的表達(dá)為二進(jìn)制小數(shù)。
沒有包含“id”成員的請求對象為通知, 作為通知的請求對象表明客戶端對相應(yīng)的響應(yīng)對象并不感興趣,本身也沒有響應(yīng)對象需要返回給客戶端。服務(wù)端必須不回復(fù)一個通知,包含那些批量請求中的。
由于通知沒有返回的響應(yīng)對象,所以通知不確定是否被定義。同樣,客戶端不會意識到任何錯誤(例如參數(shù)缺省,內(nèi)部錯誤)。
rpc調(diào)用如果存在參數(shù)則必須為基本類型或結(jié)構(gòu)化類型的參數(shù)值,要么為索引數(shù)組,要么為關(guān)聯(lián)數(shù)組對象。
索引:參數(shù)必須為數(shù)組,并包含與服務(wù)端預(yù)期順序一致的參數(shù)值。
更多建議: