Changes

Jump to navigation Jump to search
31 bytes removed ,  12:49, 8 July 2020
no edit summary
This [[Module Library|XQuery Module]] contains functions for retrieving information on an HTTP request that has triggered the query. It is mainly mostly useful in the context of when building [[Web Application]]s.
The module is related to Adam Retter’s based on the [http://exquery.github.com/expath-specs-playground/request-module-1.0-specification.html EXQuery Request Module] draft.
=Conventions=
* 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/request</nowiki></code> namespace, which is statically bound to the {{Code|request}} prefix. Prior to {{Version|9.2}}, the module needed to be imported in the query prolog:<pre class="brush:xquery">import module namespace request = "http://exquery.org/ns/request";...</pre>
* If any of the functions is called outside the servlet context, <code>[[XQuery Errors#BaseX Errors|basex:http]]</code> is raised.
The following example illustrated what components a URI may consist of (the example is derived from [http://tools.ietf.org/html/rfc3986 RFC 3986]):
<presyntaxhighlight>
foo://example.com:8042/over/there?name=ferret
\_/ \_________/ \__/\_________/ \_________/
| | | | |
scheme hostname port path query
</presyntaxhighlight>
=General Functions=
|-
| '''Summary'''
|Returns the Query component of the URI of an HTTP request. If no query has been specifiedcomponent exists, an empty sequence is returned.
|-
| '''Example'''
|-
| width='120' | '''Signatures'''
|{{Func|request:cookie|$name as xs:string|xs:string*?}}<br/>{{Func|request:cookie|$name as xs:string, $default as xs:string|xs:string}}
|-
| '''Summary'''
=Attribute Functions=
==request:attribute-names==
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|request:attribute-names|$name as xs:string|xs:string*}}
|-
| '''Summary'''
|Returns the value names of an attribute of the all HTTP request. If the attribute does not exist, an empty sequence is returned.|-| '''Example'''|* {{Code|request:attribute("javax.servlet.error.request_uri")}} returns the original URI of a caught error.* {{Code|request:attribute("javax.servlet.error.message")}} returns the error message of a caught errorattributes.
|}
==request:attribute-names== {{Mark|Introduced with BaseX 9.3:}}
{| width='100%'
|-
| width='120' | '''Signatures'''
|{{Func|request:attribute-names|$name as xs:string|item()*}}<br/>{{Func|request:attribute|$name as xs:string, $default as item()*|item()*}}
|-
| '''Summary'''
|Returns the names value of all an attribute of the HTTP request attributes. If the attribute does not exist, an empty sequence or the optionally specified default value is returned instead.|-| '''Example'''|* {{Code|request:attribute("javax.servlet.error.request_uri")}} returns the original URI of a caught error.* {{Code|request:attribute("javax.servlet.error.message")}} returns the error message of a caught error.
|}
==request:set-attribute==
 
{{Mark|Introduced with BaseX 9.3:}}
{| width='100%'
;Version 9.3
 
* Added: [[#request:attribute-names|request:attribute-names]], [[#request:set-attribute|request:set-attribute]]
* Updated: [[#request:attribute|request:attribute]]: return type generalized, default argument added
;Version 7.9
 
* Updated: The returned values of [[#request:parameter-names|request:parameter-names]], [[#request:parameter|request:parameter]] now also include form field parameters.
;Version 7.8
 
* Added: [[#request:context-path|request:context-path]]
;Version 7.7
 
* Added: [[#request:attribute|request:attribute]]
This module was introduced with Version 7.5.
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu