Sphinx plugin to add an HTTP domain, allowing the documentation of RESTful HTTP methods.
You can document simple methods, wrap any arguments in the path with curly-braces:
.. http:method:: GET /api/foo/bar/{id}/{slug} :arg id: An id :arg slug: A slug Retrieve list of foobars matching given id.
Query string parameters are also supported, both mandatory and optional:
.. http:method:: GET /api/foo/bar/?id&slug :param id: An id :optparam slug: A slug Search for a list of foobars matching given id.
As well, you can provide types for parameters and arguments:
.. http:method:: GET /api/foo/bar/{id}/?slug :arg integer id: An id :optparam string slug: A slug Search for a list of foobars matching given id.
Fragments are also supported:
.. http:method:: GET /#!/username :fragment username: A username Renders a user's profile page.
Plus, you can document the responses with their response codes:
.. http:method:: POST /api/foo/bar/ :param string slug: A slug :response 201: A foobar was created successfully. :response 400: Create a foobar.
To refer to an HTTP method, use :http:method:
:
.. http:method:: GET /api/ :label-name: get-root :title: API root The :http:method:`get-root` contains all of the API.
Documenting responses is also simple:
.. http:response:: Foobar object A foobar object looks like this:: .. source-code:: js { 'slug': SLUG } :data string SLUG: A slug :format: JSON
To refer to an HTTP response, use :http:response:
:
.. http:response:: Foobar object A :http:response:`foobar-object` is returned when you foo the bar.
Requires Sphinx >= 1.0.6 (http://sphinx.pocoo.org).
Run pip install sphinx-http-domain
.
Then, add sphinx_http_domain
to your conf.py:
extensions = ['sphinx_http_domain']
- Version: 0.2
- Homepage: https://github.com/deceze/Sphinx-HTTP-domain
For contributions, please fork this project on GitHub!
David Zentgraf (https://github.com/deceze)
- Simon Law (https://github.com/sfllaw), who really wrote virtually all of this