JSON-RPC

редактировать

JSON- RPC - это удаленный вызов процедуры протокол, закодированный в JSON. Он похож на протокол XML-RPC, определяя только несколько типов данных и команд. JSON-RPC позволяет отправлять уведомления (данные, отправляемые на сервер, не требующие ответа), а также отправлять несколько вызовов на сервер, на которые можно отвечать асинхронно.

Содержание
  • 1 История
  • 2 Использование
  • 3 Примеры
    • 3.1 Версия 2.0
    • 3.2 Версия 1.1 (рабочий проект)
    • 3.3 Версия 1.0
  • 4 См. Также
  • 5 Ссылки
  • 6 Внешние ссылки
История
ВерсияОписаниеДата
1.0Исходная версия 2005
1.1 WDРабочий проект. Добавляет именованные параметры, добавляет определенные коды ошибок и добавляет функции самоанализа.07.08.2006
1.1 АльтернативныйПредложение для простого 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 (пересмотренное-)Спецификация 26.03.2010
Использование

JSON-RPC работает, отправляя запрос на сервер, реализующий этот протокол. В этом случае клиентом обычно является программное обеспечение, намеревающееся вызвать единственный метод удаленной системы. Несколько входных параметров могут быть переданы удаленному методу в виде массива или объекта, тогда как сам метод может также возвращать несколько выходных данных. (Это зависит от реализованной версии.)

Все типы передачи представляют собой отдельные объекты, сериализованные с использованием JSON. Запрос - это вызов определенного метода, предоставляемого удаленной системой. Он должен содержать три определенных свойства:

  • method- строка с именем вызываемого метода.
  • params- объект или массив значений, передаваемых в качестве параметров определенному методу..
  • id- значение любого типа, используемое для сопоставления ответа с запросом, на который он отвечает.

Получатель запроса должен ответить действительным ответом на все полученные запросы. Ответ должен содержать свойства, указанные ниже.

  • результат- данные, возвращаемые вызванным методом. Этот элемент отформатирован как объект JSON-stat. Если при вызове метода произошла ошибка, это значение должно быть пустым.
  • error- Указанный код ошибки, если при вызове метода произошла ошибка, в противном случае - null.
  • id- Идентификатор запроса. ответ на.

Поскольку бывают ситуации, когда ответ не требуется или даже не желателен, были введены уведомления. Уведомление похоже на запрос, за исключением идентификатора, который не нужен, потому что ответ не будет возвращен. В этом случае свойство idследует опустить (версия 2.0) или иметь значение null(версия 1.0).

Примеры

В этих примерах -->обозначает данные, отправленные службе (запрос), а <--обозначает данные, поступающие от службы. Хотя <--часто называют ответом в вычислениях клиент-сервер, в зависимости от версии JSON-RPC он не обязательно подразумевает ответ на запрос.

Версия 2.0

Запрос и ответ:

->{"jsonrpc": "2.0", "method": "subtract", "params": {"minuend": 42, "subtrahend": 23}, "id": 3} <-- {"jsonrpc": "2.0", "result": 19, "id": 3}

Уведомление (нет ответа):

->{"jsonrpc": "2.0", "method": "update", "params" : [1,2,3,4,5]}

Версия 1.1 (рабочий проект)

Запрос и ответ:

->{"версия": "1.1", "метод" : "confirmFruitPurchase", "params": [["яблоко", "апельсин", "манго"], 1.123], "id": "194521489"} <-- {"version": "1.1", "result": "done", "error": null, "id": "194521489"}

Версия 1.0

Запрос и ответ:

->{"method": "echo", "params": ["Hello JSON-RPC"], "id": 1} <-- {"result": "Hello JSON-RPC", "error": null, "id": 1}
См. Также
Ссылки
  1. ^, спецификация - JSON-RPC - Trac «. Архивировано из оригинального 17 мая 2008 года. Проверено 14 мая 2008 г.
Внешние ссылки
Последняя правка сделана 2021-05-24 10:19:34
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте