
hudson.model.Api.index.jelly Maven / Gradle / Ivy
Remote API
Many objects of Hudson provides the remote access API. They are available
at ${rootURL}/.../api/ where "..." portion is the object for
which you'd like to access.
- XML API
-
Access data exposed in HTML as XML for machine consumption.
Schema is also available.
You can also specify optional XPath to control the fragment you'd like to obtain.
For example, ../api/xml?xpath=/*/*[0]. If the XPath only matches a text node,
the result will be sent with text/plain MIME type to simplify
further processing.
For XPath that matches multiple nodes, you need to also specify the "wrapper" query parameter
to specify the name of the root XML element to be create so that the resulting XML becomes well-formed.
- JSON API
-
Access the same data as JSON for JavaScript-based access. Supports
JSONP through
the optional jsonp=callbackname query parameter.
- Python API
-
Access the same data as Python for Python clients. This can be parsed into Python
object as eval(urllib.urlopen("...").read()) and the resulting object
tree is identical to that of JSON.
However, when you do this, beware of the security implication. If you are connecting
to a non-trusted Hudson, the server can send you malicious Python programs.
For more information about remote API in Hudson, see
the documentation.
Controling the amount of data you fetch
In both formats, the depth query parameter can be used to control the amount of data
you'll receive. The default is depth=0, but by increasing this value you can get
a lot of data by single remote API invocation (the downside is bigger bandwidth requirement.)
Compare depth=0 and depth=1 and see what the difference
is for yourself. Also note that data created by a smaller depth value is always a subset of
the data created by a bigger depth value.