HOME

TheInfoList



OR:

The RESTful Service Description Language (RSDL) is a machine- and human-readable XML description of HTTP-based web applications (typically REST web services). The language (defined by Michael Pasternak during his work on oVirt RESTful API) allows documenting the ''model'' of the resource(s) provided by a service, the relationships between them, and operations and the parameters that must be supplied for the operations. It specifies if parameters are mandated; and describes possible overloads as parameters sets. RSDL is intended to simplify the reuse of web services that are based on the HTTP architecture of the web. It is platform- and language-independent and aims to promote reuse of applications beyond the basic use in a web browser by both humans and machines. Unlike WADL, it concentrates on describing
URI Uri may refer to: Places * Canton of Uri, a canton in Switzerland * Úri, a village and commune in Hungary * Uri, Iran, a village in East Azerbaijan Province * Uri, Jammu and Kashmir, a town in India * Uri (island), an island off Malakula Islan ...
s as stand-alone entry points in to the application which can be invoked in different ways, does not require traversing over URI components to figure out URI structure, and supports URI/Headers/body parameters overloads. This makes it human-readable and easily consumed by both humans and machines.


Properties

*Self descriptive: RSDL represents different URIs as stand-alone entry points into the application. Following resource URIs, one can figure out which methods are available for the given resources and how those resources can be consumed. *Machine-readable: Each URI in RSDL contains all the necessary information to generate an HTTP request from it, which can be easily consumed by accessing the URI internals. *Human-readable: Each URI in RSDL contains "rel" and "description" attributes describing the meaning of the given operation on that URI. Humans can easily fetch all available operations for a given collection/resource simply by locating different descriptors within the same URI.


Format

api.xsd
GET, POST, PUT, DELETE, ...
... FQ-name-to-parameter


Components


URI


Request

GET, POST, PUT, DELETE, ...
...
... ... ... FQ-name-to-parameter ... ...


Response

...


XML schema


Examples


List resources

GET
Filter true, false
search search query case_sensitive true, false max max results
Clusters


Get resource

GET
Filter true, false
Cluster


Update resource

PUT
Content-Type application/xml, json
Correlation-Id any string
Cluster cluster.name cluster.description cluster.cpu.id cluster.version.major cluster.version.minor cluster.memory_policy.overcommit.percent cluster.memory_policy.transparent_hugepages.enabled cluster.scheduling_policy.policy cluster.scheduling_policy.thresholds.low cluster.scheduling_policy.thresholds.high cluster.scheduling_policy.thresholds.duration cluster.error_handling.on_error cluster.virt_service cluster.gluster_service cluster.threads_as_cores cluster.tunnel_migration
Cluster


Create resource

POST
Content-Type application/xml, json
Expect 201-created
Correlation-Id any string
Cluster cluster.data_center.id, name cluster.name cluster.version.major cluster.version.minor cluster.cpu.id cluster.description cluster.memory_policy.overcommit.percent cluster.memory_policy.transparent_hugepages.enabled cluster.scheduling_policy.policy cluster.scheduling_policy.thresholds.low cluster.scheduling_policy.thresholds.high cluster.scheduling_policy.thresholds.duration cluster.error_handling.on_error cluster.virt_service cluster.gluster_service cluster.threads_as_cores cluster.tunnel_migration
Cluster


Delete resource

DELETE
Correlation-Id any string
async true, false


Code generation


RSDL URI descriptor

POST
Content-Type application/xml, json
Expect 201-created
Correlation-Id any string
Cluster cluster.data_center.id, name cluster.name cluster.version.major cluster.version.minor cluster.cpu.id cluster.description cluster.memory_policy.overcommit.percent cluster.memory_policy.transparent_hugepages.enabled cluster.scheduling_policy.policy cluster.scheduling_policy.thresholds.low cluster.scheduling_policy.thresholds.high cluster.scheduling_policy.thresholds.duration cluster.error_handling.on_error cluster.virt_service cluster.gluster_service cluster.threads_as_cores cluster.tunnel_migration
Cluster


Generated code signature(s)

/** * Adds Cluster object. * @param cluster * cluster.data_center.id, name * cluster.name * cluster.version.major * cluster.version.minor * cluster.cpu.id * luster.description * luster.memory_policy.overcommit.percent * luster.memory_policy.transparent_hugepages.enabled * luster.scheduling_policy.policy * luster.scheduling_policy.thresholds.low * luster.scheduling_policy.thresholds.high * luster.scheduling_policy.thresholds.duration * luster.error_handling.on_error * luster.virt_service * luster.gluster_service * luster.threads_as_cores * luster.tunnel_migration * @return * * @throws ClientProtocolException * Signals that HTTP/S protocol error has occurred. * @throws ServerException * Signals that an oVirt api error has occurred. * @throws IOException * Signals that an I/O exception of some sort has occurred. */ public Cluster add(org.ovirt.engine.sdk.entities.Cluster cluster) throws ClientProtocolException, ServerException, IOException /** * Adds Cluster object. * @param cluster * cluster.data_center.id, name * cluster.name * cluster.version.major * cluster.version.minor * cluster.cpu.id * luster.description * luster.memory_policy.overcommit.percent * luster.memory_policy.transparent_hugepages.enabled * luster.scheduling_policy.policy * luster.scheduling_policy.thresholds.low * luster.scheduling_policy.thresholds.high * luster.scheduling_policy.thresholds.duration * luster.error_handling.on_error * luster.virt_service * luster.gluster_service * luster.threads_as_cores * luster.tunnel_migration * @param expect * 01-created * @param correlationId * ny string * @return * * @throws ClientProtocolException * Signals that HTTP/S protocol error has occurred. * @throws ServerException * Signals that an oVirt api error has occurred. * @throws IOException * Signals that an I/O exception of some sort has occurred. */ public Cluster add(org.ovirt.engine.sdk.entities.Cluster cluster, String expect, String correlationId) throws ClientProtocolException, ServerException, IOException


References

{{Reflist Web services