SOAPjr - это спецификация протокола для обмена структурированной информацией при реализации веб-сервисов в компьютерных сетях. Это гибрид SOAP и JSON-RPC (в данном случае сокращенно «jr»).
SOAPjr разработан для создания чистых, быстрых API в стиле Ajax и аналогичен введению внеполосной сигнализации в мир телефонии.
Традиционный протокол SOAP больше не является протоколом простого доступа к объектам, которым он был изначально задуман. Он может быть раздутым и слишком многословным, что делает его требовательным к пропускной способности и медленным. Он также основан на XML, что делает его дорогостоящим для синтаксического анализа и манипулирования - особенно на мобильных или встроенных клиентах. Тем не менее, его базовый шаблон проектирования конверт / голова / тело полезен для Ajax style API-интерфейсов.
SOAPjr использует аналогичную модель Envelope / Head / Body, используя легкую и более простую в использовании JSON.
В отличие от SOAP, JSON-RPC чрезмерно упрощен и в основном туннелируют пары ключ / значение в стиле HTTP GET в строке запроса с использованием JSON. Однако в JSON-RPC нет разделения головы и тела, оставляя метаданные, чтобы загрязнять основное пространство данных.
SOAPjr сочетает в себе лучшее из этих двух концепций и предназначен для создания современных API-интерфейсов Ajax, которые могут легко использоваться мобильными устройствами, встроенными системами или настольными браузерами.
См. Спецификации SOAPjr для более подробного описания.
SOAPjr - это проект с открытым исходным кодом с программным обеспечением, выпущенным под лицензией GPL, и содержимым под лицензией Creative Commons.
Следующие объекты SOAPjr определены как JSON-Schemas.
SOAPjr.org также стремится внести свой вклад в создание общего набора DMD (определений моделей данных), которые может соответствовать предложению схемы JSON и предложению описания сопоставления услуг, чтобы приложения в определенных доменах могли легко обмениваться данными. Основное расширение, которое может предоставить здесь SOAPjr, - это использование согласованных или стандартизованных кодов ошибок.
Другие ресурсы, которые могут сообщить об этой разработке, - это общие модели данных, используемые в микроформатах и RDF
Это базовый запрос для просмотра деталей jCard для одного пользователя ( на основе их имени пользователя). Это сообщение будет передано в запросе с параметром "json", например
? Json = {"HEAD": {"service_type": "contacts", "action_type": "view", "sid": "80e5b8a8b9cbf3a79fe8d624628a0fe5"}, "BODY": {"username": "jbloggs"} }
{"HEAD": {"service_type": "contacts", "action_type": "view", "sid": "80e5b8a8b9cbf3a79fe8d624628a0fe5"}, "BODY": {"username": "jbloggs"}}
Это простой ответ SOAPjr с HEAD.result, который означает успех. BODY содержит одну запись jCard. В контексте «список» или «поиск» это будет содержать массив из 0 или более записей jCard.
{"HEAD": {"result": "1"}, "BODY": {"email": [{"type": ["internet", "pref"], "value": "spam @ SOAPjr.org "}]," fn ":" Joe Bloggs "," kind ":" индивидуальный "," n ": {" family-name ": [" Bloggs "]," given-name ": [" Джо "]," value ":" Bloggs; Joe "}," org ": [{" название-организации ":" SOAPjr.org "}]}}