diff mbox

[v2,6/6] docs: Add basic API guide

Message ID 1444676079-13294-7-git-send-email-stephen.finucane@intel.com
State Accepted
Headers show

Commit Message

Stephen Finucane Oct. 12, 2015, 6:54 p.m. UTC
Because it is now possible to access the auto-generated XML-RPC
documentation, only provide a brief "HOWTO" on using the 'xmlrpclib'
library and a note on how to find this autogenerated documentation.

Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>

--

v2:
- Fix bug in sample 'xmlrpclib' code
- Improve quality of links
- Minor rewording
---
 docs/api.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
 create mode 100644 docs/api.md

Comments

Stephen Finucane Oct. 26, 2015, 9:03 p.m. UTC | #1
> Because it is now possible to access the auto-generated XML-RPC
> documentation, only provide a brief "HOWTO" on using the 'xmlrpclib'
> library and a note on how to find this autogenerated documentation.
> 
> Signed-off-by: Stephen Finucane <stephen.finucane@intel.com>
> 
> --
> 
> v2:
> - Fix bug in sample 'xmlrpclib' code
> - Improve quality of links
> - Minor rewording

Merged.
diff mbox

Patch

diff --git a/docs/api.md b/docs/api.md
new file mode 100644
index 0000000..04026d8
--- /dev/null
+++ b/docs/api.md
@@ -0,0 +1,51 @@ 
+# The XML-RPC API
+
+Patchwork provides an XML-RPC API. This API can be used to be used to retrieve
+and modify information about patches, projects and more.
+
+**NOTE:** The XML-RPC API can be enabled/disabled by the administrator: it may
+not be available in every instance.
+
+## Patchwork API Documentation
+
+Patchwork provides automatically generated documentation for the XML-RPC API.
+You can find this at the following URL:
+
+    http://patchwork.example.com/xmlrpc/
+
+Where `patchwork.example.com` refers to the URL of your patchwork instance.
+
+**NOTE:** Automatic documentation generation for the patchwork API was
+introduced in Patchwork v1.1. Prior versions of Patchwork do not offer this
+functionality.
+
+## Developing Your Own Client
+
+You need to connect to the server. Some methods require authentication (via
+HTTP Basic Auth) while others do not. Authentication uses your patchwork
+account and the on-server documention will indicate where it is necessary.
+We will only cover the unauthenticated method here for brevity - please
+consult the [`xmlrpclib`] documentation for more detailed examples:
+
+    from __future__ import print_function
+    import sys
+    import xmlrpclib
+
+    url = 'http://patchwork.example.org/xmlrpc/'
+
+    try:
+        rpc = xmlrpclib.ServerProxy(url)
+    except:
+        print('Unable to connect to %s\n' % url, file=sys.stderr)
+        sys.exit(1)
+
+After connecting, the `rpc` object will be populated with a list of available
+functions (or procedures, in RPC terminology). For example, if we continue
+with the above example:
+
+    print(rpc.pw_rpc_version())
+
+It should be possible to use all the methods listed in the
+[server's documentation](#patchwork-api-documentation).
+
+[`xmlrpclib`]: https://docs.python.org/2/library/xmlrpclib.html