Кіріспе
JSON RPC (JavaScript Object Notation Remote Procedure Call) - JSON-та кодталған қашықтықтан шақыру (RPC) протоколы. Ол XML RPC протоколына ұқсас, тек бірнеше дерек түрлері мен командаларды анықтайды. JSON RPC хабарламаларға (жауапты талап етпейтін серверге жіберілетін деректер) және серверге бірнеше шақыруларды жіберуге мүмкіндік береді, олар асинхронды түрде жауап беруі мүмкін.
JSON RPC (JavaScript Object Notation Remote Procedure Call) is a remote procedure call (RPC) protocol encoded in JSON. It is similar to the XML RPC protocol, defining only a few data types and commands. JSON RPC allows for notifications (data sent to the server that does not require a response) and for multiple calls to be sent to the server which may be answered asynchronously.
Тарих
Версияның сипаттамасы 1.0-ші күні Бастапқы нұсқасы 2005 1.1 WD Жұмыс жобасы. Аталған параметрлерді, нақты қате кодтарын және интроспекция функцияларын қосады. 2006 08 07 1.1 Alt қарапайым JSON RPC үшін ұсыныстар 1.1. 1.1 WD-ге баламалы ұсыныс. 2007 05 06 1.1 Нысанның сипаттамасы Нысанның сипаттамасы. 1.1 WD/1.1ALT-қа баламалы ұсыныс. 2007 07 30 1.2 Ұсыныс. Бұл құжаттың кейінгі қайта қаралуы 2.0 деп аталды. 2007 12 27 2.0 Анықтама ұсынысы 2009 05 24 2.0 (Қаралған) Анықтама 2010 03 26
Қолданылуы
JSON RPC осы протоколды іске асыратын серверге сұрау салуды жіберу арқылы жұмыс істейді. Бұл жағдайда клиент - қашықтағы жүйенің бір әдісін шақыруға ниеттенген бағдарламалық жасақтама. Бірнеше кіріс параметрлерін қашықтан әдіске массив немесе объект ретінде беруге болады, ал әдістің өзі бірнеше шығыс деректерін қайтара алады. (Бұл іске асырылған нұсқаға байланысты.) Барлық беру түрлері JSON арқылы серияланған бір нысандар болып табылады. Сұрау - қашықтан жұмыс істейтін жүйемен қамтамасыз етілген нақты әдіске шақыру. Ол үш мүшеден тұрады: әдіс А шақырылатын әдістің атауымен қатар жіп. "rpc" әріпінен басталатын әдіс атауы. RPC ішкі әдістеріне арналған. параметрлер - анықталған әдіске параметр ретінде берілетін мәндер объектісі немесе массиві. Бұл тармақ алынып тасталуы мүмкін. id Жауапты жауапқа жауап беретін сұраумен сәйкестендіру үшін қолданылатын тізбек немесе бөлшекті емес сан. Егер жауап қайтарылмаса, бұл тармақты қалдыруға болады. Сұрау салуды алушы барлық алынған сұрау салуларға жарамды жауап беруі тиіс. Жауапта төменде көрсетілген мүшелер болуы мүмкін. result Шақырылған әдіс қайтаратын деректер. Егер әдісті шақырғанда қате пайда болса, бұл мүше болмауы керек. error Егер әдісті шақыру кезінде қате болса, қате объектісі, әйтпесе бұл мүше болмауы керек. Объектіде мүшелер коды (толық сан) және хабарлама (жол) болуы тиіс . Құқықтық емес деректер құрамында серверге тән қосымша деректер болуы мүмкін. XML RPC үшін анықталған қате кодтары бар. id Сұраудың ID-і. Кейде жауап беру қажет емес немесе тіпті қажет емес болғандықтан, хабарламалар енгізілген. Хабарлама сұрау салуға ұқсас, бірақ ID қажет емес, өйткені жауап қайтарылмайды. Бұл жағдайда id қасиетті алып тастау керек (2.0 нұсқасы) немесе нөл (1.0 нұсқасы).
method A String with the name of the method to be invoked. Method names that begin with "rpc." are reserved for rpc internal methods. params An Object or Array of values to be passed as parameters to the defined method. This member may be omitted. id A string or non fractional number used to match the response with the request that it is replying to. This member may be omitted if no response should be returned. The receiver of the request must reply with a valid response to all received requests. A response can contain the members mentioned below. result The data returned by the invoked method. If an error occurred while invoking the method, this member must not exist. error An error object if there was an error invoking the method, otherwise this member must not exist. The object must contain members code (integer) and message (string). An optional data member can contain further server specific data. There are pre defined error codes which follow those defined for XML RPC. id The id of the request it is responding to. Since there are situations where no response is needed or even desired, notifications were introduced. A notification is similar to a request except for the id, which is not needed because no response will be returned. In this case the id property should be omitted (Version 2.0) or be null (Version 1.0).
Мысалдар
Бұл мысалда > - қызметке жіберілген деректерді (өтініш) білдіреді, ал < - қызметтен келетін деректерді білдіреді. < дегенді клиенттік серверлік есептеуде жиі жауап деп атаса да, JSON RPC нұсқасына байланысты бұл сұрау салуға жауап беруді білдірмейді.