Difference between revisions of "RESTXQ Module"

From BaseX Documentation
Jump to navigation Jump to search
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
=Conventions=
 
=Conventions=
  
* The {{Code|basex-api}} package must be included in the classpath. This is always the case if you use one of the complete distributions (zip, exe, war) of BaseX.
+
* The module will be available if the {{Code|basex-api}} library is found in the classpath. This is the case if you use one of the complete distributions of BaseX (zip, exe, war).
* All functions are assigned to the <code><nowiki>http://exquery.org/ns/restxq</nowiki></code> namespace. The module must be imported in the query prolog:
+
* All functions are assigned to the <code><nowiki>http://exquery.org/ns/restxq</nowiki></code> namespace, which is statically bound to the {{Code|rest}} prefix.
<pre class="brush:xquery">
+
* The <code><nowiki>http://wadl.dev.java.net/2009/02</nowiki></code> namespace is bound to the {{Code|wadl}} prefix.
import module namespace rest = "http://exquery.org/ns/restxq";
+
* If any of the functions is called outside the servlet context, <code>[[XQuery Errors#BaseX Errors|basex:http]]</code> is raised.
...
 
</pre>
 
* In this documentation, the namespace is bound to the {{Code|rest}} prefix, and the <code><nowiki>http://wadl.dev.java.net/2009/02</nowiki></code> namespace is bound to the {{Code|wadl}} prefix.
 
* If any of the functions is called outside the servlet context, the error {{Error|BXSE0003|#Errors}} is raised.
 
  
 
=General Functions=
 
=General Functions=
Line 44: Line 40:
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Returns a [http://www.w3.org/Submission/wadl WADL description] of all available REST services.
+
|Returns a [https://www.w3.org/Submission/wadl WADL description] of all available REST services.
 
|}
 
|}
  
 
==rest:init==
 
==rest:init==
  
{{Mark|Introduced with Version 8.6}}:
+
{{Mark|Updated with Version 9.4:}} Argument added.
  
 
{| width='100%'
 
{| width='100%'
 
|-
 
|-
 
| width='120' | '''Signatures'''
 
| width='120' | '''Signatures'''
|{{Func|rest:init||empty-sequence()}}
+
|{{Func|rest:init||empty-sequence()}}<br/>{{Func|rest:init|$update as xs:boolean|empty-sequence()}}
 
|-
 
|-
 
| '''Summary'''
 
| '''Summary'''
|Initializes the RESTXQ module cache. This function should be called if {{Option|CACHERESTXQ}} is enabled and if RESTXQ modules are replaced while the web server is running.
+
|Initializes the RESTXQ module cache:
 +
* By default, the cache will be discarded, and all modules will be parsed and cached again.
 +
* If {{Code|$update}} is enabled, the background caching behavior is simulated (see {{Option|PARSERESTXQ}}): Only updated modules will be parsed.
 +
* This function should be called if new RESTXQ code is deployed at runtime.
 
|}
 
|}
  
 
=Changelog=
 
=Changelog=
 +
 +
; Version 9.4
 +
* Updated: [[#rest:init|rest:init]] argument added
  
 
;Version 8.6
 
;Version 8.6

Revision as of 11:39, 2 July 2020

This XQuery Module contains helper functions for the RESTXQ API, some of which are defined in the RESTXQ Draft.

Conventions

  • The module will be available if the basex-api library is found in the classpath. This is the case if you use one of the complete distributions of BaseX (zip, exe, war).
  • All functions are assigned to the http://exquery.org/ns/restxq namespace, which is statically bound to the rest prefix.
  • The http://wadl.dev.java.net/2009/02 namespace is bound to the wadl prefix.
  • If any of the functions is called outside the servlet context, basex:http is raised.

General Functions

rest:base-uri

Signatures rest:base-uri() as xs:anyURI
Summary Returns the implementation-defined base URI of the resource function.

rest:uri

Signatures rest:uri() as xs:anyURI
Summary Returns the complete URI that addresses the Resource Function. This is the result of rest:base-uri appended with the path from the path annotation of the resource function.

rest:wadl

Signatures rest:wadl() as element(wadl:application)
Summary Returns a WADL description of all available REST services.

rest:init

Template:Mark Argument added.

Signatures rest:init() as empty-sequence()
rest:init($update as xs:boolean) as empty-sequence()
Summary Initializes the RESTXQ module cache:
  • By default, the cache will be discarded, and all modules will be parsed and cached again.
  • If $update is enabled, the background caching behavior is simulated (see PARSERESTXQ): Only updated modules will be parsed.
  • This function should be called if new RESTXQ code is deployed at runtime.

Changelog

Version 9.4
Version 8.6

This module was introduced with Version 7.7.