Size: 2430
Comment: Web Services don't need to be xml based.
|
← Revision 37 as of 2020-04-14 19:32:51 ⇥
Size: 4339
Comment: Updated status and links for many projects. (Might add SOAPpy and SOAPpy-py3 later.)
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
Line 5: | Line 6: |
Line 7: | Line 9: |
[http://json-rpc.org/ JSON-RPC] is an increasingly popular Web Services specification that uses the light-weight [http://json.org/ JSON] (JavaScript Object Notation) data-interchange format (in comparison to the tools listed below, which all use XML). JSON-RPC was created in 2004 and implementations exist in JavaScript, Java, PHP and Perl (among other languages) in addition to Python. | [[http://json-rpc.org/|JSON-RPC]] is an increasingly popular Web Services specification that uses the light-weight [[http://json.org/|JSON]] ([[JavaScript|JavaScript]] Object Notation) data-interchange format (in comparison to the protocols listed below, which all use XML). JSON-RPC was created in 2004 and implementations exist in [[JavaScript|JavaScript]], Java, PHP and Perl (among other languages) in addition to Python. |
Line 9: | Line 11: |
* [http://json-rpc.org/wiki/python-json-rpc] The specification website includes a python implementation. | |
Line 11: | Line 12: |
* [http://pypi.python.org/pypi/JsonUtils/ JsonUtils] is another library that supports JSON-RPC. | * [[http://json-rpc.org/wiki/python-json-rpc|python-json-rpc]] The specification website includes a Python implementation. * [[http://pypi.python.org/pypi/JsonUtils/|JsonUtils]] is another library that supports JSON-RPC. == JSON-WSP == [[http://en.wikipedia.org/wiki/Jsonwsp|JSON-WSP]] is another JSON based webservice protocol. It is inspired by JSON-RPC but designed with a JSON based description format (like WSDL in SOAP). For the time being there is only a Python based implementation, but a PHP implementation is in progress and will also be openly available. * Ladon is a multiprotocol approach to creating a webservice. See below, in the SOAP section, for more information. * [[https://bitbucket.org/pfacka/jsonwsp|pfacka/jsonwsp]] is another JSON-WSP server and client implementation. |
Line 15: | Line 25: |
["SOAP"] is a Web services technology favoured in certain environments. The following projects seek to support SOAP and related technologies such as WSDL: | [[SOAP]] is a Web services technology favoured in certain environments. The following projects seek to support SOAP and related technologies such as WSDL: |
Line 17: | Line 27: |
* [http://sourceforge.net/projects/pywebsvcs ZSI] (Zolera Soap Infrastructure) - a version of the actively maintained [http://sourceforge.net/projects/pywebsvcs Python Web Services] project; ZSI-2.0 Released on 2007-02-02 provides both client and server SOAP libraries. Newly added was proper WSDL consumption of complex types into python classes. | * [[https://github.com/mvantellingen/python-zeep|zeep]] ([[https://pypi.org/project/zeep/|on PyPi]]) - Zeep is a modern and high performant SOAP client build on top of lxml and requests. It's well maintained, and compatible with Python 2 and 3. * [[https://github.com/suds-community/suds|suds]] ([[https://pypi.org/project/suds-community/|on PyPi]]) - Suds is a lightweight SOAP python client that provides a service proxy for Web Services. This is the best maintained fork of the original Suds project by Jeff Ortel, and it's compatible with Python 2 and 3. * [[https://github.com/arskom/spyne|spyne]] ([[https://pypi.org/project/spyne/|on PyPi]]) - Spyne, formerly known as Soaplib, is transport and architecture agnostic RPC library that focuses on exposing services with a well-defined API using popular protocols, including SOAP. It's well maintained, and compatible with Python 2 and mostly 3. * [[https://bitbucket.org/jakobsg/ladon/|ladon]] ([[https://pypi.org/project/ladon/|on PyPi]]) - Ladon is a framework for exposing python methods to several internet service protocols. It's compatible with Python 2 and 3. * [[https://github.com/pysimplesoap/pysimplesoap/|pysimplesoap]] ([[https://pypi.org/project/PySimpleSOAP/|on PyPi]]) - PySimpleSOAP is a simple and functional client/server. It's compatible with Python 2 and 3. * [[https://bitbucket.org/sboz/osa|osa]] - osa is a fast/slim easy to use SOAP python client library. * [[http://sourceforge.net/projects/pywebsvcs|Python Web Services]] and Zolera Soap Infrastructure (([[https://pypi.org/project/ZSI/|ZSI on PyPi]]) provides both client and server SOAP libraries. It was very popular, but it's a dead project (last release 2007) without any Python 3 support. |
Line 19: | Line 35: |
* [http://www.python.org/pypi/soaplib soaplib] - a more recently established Web services library; at this time, this library is best used for publishing SOAP services since WSDL consumption is not part of the library | == SOAPjr == * http://en.wikipedia.org/wiki/SOAPjr |
Line 23: | Line 44: |
The first popular and largely standardised Web services technology was [wiki:XmlRpc XML-RPC], supported in Python by the following libraries: | The first popular and largely standardised Web services technology was [[XmlRpc|XML-RPC]], supported in Python by the following libraries: |
Line 27: | Line 50: |
Line 29: | Line 53: |
More in common with the message-centric usage of ["SOAP"], [http://www.xmpp.org/ XMPP] - an Internet standard which provides the foundation for the Jabber instant messaging technology - could be used as a Web services protocol. See ["PythonXml"] for details of suitable projects. | More in common with the message-centric usage of [[SOAP|SOAP]], [[http://www.xmpp.org/|XMPP]] - an Internet standard which provides the foundation for the Jabber instant messaging technology - could be used as a Web services protocol. See [[PythonXml|PythonXml]] for details of suitable projects. |
Line 33: | Line 59: |
Web Services
Web services can be generally regarded as functions or functionality of applications or systems exposed over the Web using standardised message formats and typically interfaced to other software using traditional APIs, although "message-centric" usage of such services is also possible and may be favoured by certain technologies.
JSON-RPC
JSON-RPC is an increasingly popular Web Services specification that uses the light-weight JSON (JavaScript Object Notation) data-interchange format (in comparison to the protocols listed below, which all use XML). JSON-RPC was created in 2004 and implementations exist in JavaScript, Java, PHP and Perl (among other languages) in addition to Python.
python-json-rpc The specification website includes a Python implementation.
JsonUtils is another library that supports JSON-RPC.
JSON-WSP
JSON-WSP is another JSON based webservice protocol. It is inspired by JSON-RPC but designed with a JSON based description format (like WSDL in SOAP). For the time being there is only a Python based implementation, but a PHP implementation is in progress and will also be openly available.
- Ladon is a multiprotocol approach to creating a webservice. See below, in the SOAP section, for more information.
pfacka/jsonwsp is another JSON-WSP server and client implementation.
SOAP
SOAP is a Web services technology favoured in certain environments. The following projects seek to support SOAP and related technologies such as WSDL:
zeep (on PyPi) - Zeep is a modern and high performant SOAP client build on top of lxml and requests. It's well maintained, and compatible with Python 2 and 3.
suds (on PyPi) - Suds is a lightweight SOAP python client that provides a service proxy for Web Services. This is the best maintained fork of the original Suds project by Jeff Ortel, and it's compatible with Python 2 and 3.
spyne (on PyPi) - Spyne, formerly known as Soaplib, is transport and architecture agnostic RPC library that focuses on exposing services with a well-defined API using popular protocols, including SOAP. It's well maintained, and compatible with Python 2 and mostly 3.
ladon (on PyPi) - Ladon is a framework for exposing python methods to several internet service protocols. It's compatible with Python 2 and 3.
pysimplesoap (on PyPi) - PySimpleSOAP is a simple and functional client/server. It's compatible with Python 2 and 3.
osa - osa is a fast/slim easy to use SOAP python client library.
Python Web Services and Zolera Soap Infrastructure ((ZSI on PyPi) provides both client and server SOAP libraries. It was very popular, but it's a dead project (last release 2007) without any Python 3 support.
SOAPjr
XML-RPC
The first popular and largely standardised Web services technology was XML-RPC, supported in Python by the following libraries:
- xmlrpclib - found in the standard library
XMPP
More in common with the message-centric usage of SOAP, XMPP - an Internet standard which provides the foundation for the Jabber instant messaging technology - could be used as a Web services protocol. See PythonXml for details of suitable projects.
Editorial Note
The above lists should be arranged in ascending alphabetical order - please respect this when adding new solutions. When specifying release dates please use the format YYYY-MM-DD.