Кіріспе

JSON RPC (JavaScript Object Notation Remote Procedure Call) - JSON-та кодталған қашықтықтан шақыру (RPC) протоколы. Ол XML RPC протоколына ұқсас, тек бірнеше дерек түрлері мен командаларды анықтайды. JSON RPC хабарламаларға (жауапты талап етпейтін серверге жіберілетін деректер) және серверге бірнеше шақыруларды жіберуге мүмкіндік береді, олар асинхронды түрде жауап беруі мүмкін.

Тарих

Версияның сипаттамасы 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 нұсқасы).

Мысалдар

Бұл мысалда > - қызметке жіберілген деректерді (өтініш) білдіреді, ал < - қызметтен келетін деректерді білдіреді. < дегенді клиенттік серверлік есептеуде жиі жауап деп атаса да, JSON RPC нұсқасына байланысты бұл сұрау салуға жауап беруді білдірмейді.