In 2012, Adam Retter presented a use of annotations to define a web interface [RESTXQ]. It is based on the Java standard RESTful Web Services [JAX-RS]. RESTXQ has since been implemented by many XQuery products as it provides a straightforward way to wire-up XQuery code to a web interface.
A simple RESTXQ example:
declare %rest:path("hello/{$who}") %rest:GET function page:hello($who) { <response> <title>Hello { $who }!</title> </response> };
Here the %rest:path
annotation specifies a URL and the %rest:GET
specifies an HTTP method. In a suitable Web server environment, a request for
"/hello/fred" will be wired up to invoke the page:hello
function
with the argument "fred". The result of the function will be returned by web
server.