From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

JSON-WSP is a web service protocol that uses JSON for service description, requests and responses.[1] It is inspired from JSON-RPC, but the lack of a service description specification with documentation in JSON-RPC sparked the design of JSON-WSP.

The description format has the same purpose for JSON-WSP as WSDL has for SOAP or IDL for CORBA, which is to describe the types and methods used in a given service. It also describes inter-type relations (i.e. nested types) and defines which types are expected as method arguments and which types the user can expect to receive as method return values. Finally the description opens the possibility to add documentation on service, method, parameter and return levels.

Communication between clients and a JSON-WSP server is carried out using HTTP POST[2] requests and responses, with the JSON objects as data with the content-type application/json.[3]


JSON-WSP consists of four JSON object specifications:

Specification Description
description Service description specification (like WSDL). This specification describes methods, method parameters, types and return types. It also supports user documentation on service, method and parameter levels.
request Specification for JSON requests. It contains information about which method that is to be invoked and all the arguments for the method call. Arguments in the request must obey the parameter definition of the same method described in the corresponding JSON-WSP description.
response Specification for JSON responses. The response object contains the result of a service method invocation. The return type must obey the defined return type of the same method in the corresponding JSON-WSP description.
fault Specification for JSON fault responses. The fault object contains a fault code and a fault string. The fault information specifies whether the fault occurred on the client or server side. Depending on the server side service framework more detailed information can be extracted, i.e. the filename and line number where the fault occurred.


  1. ^ "ECMAScript – 2017 Language Specification" (PDF). Ecma-international.org. Archived from the original (PDF) on 12 April 2015. Retrieved 28 January 2018.
  2. ^ Roy, Fielding; Julian, Reschke. "Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content". Tools.ietf.org. Retrieved 28 January 2018.
  3. ^ "Archived copy". Archived from the original on 2011-07-17. Retrieved 2011-02-14.CS1 maint: archived copy as title (link)