Changes

Jump to navigation Jump to search
802 bytes removed ,  12:47, 14 October 2020
==web:create-url==
 
{{Mark|Updated with Version 9.3:}} Third argument added.
{| width='100%'
==web:forward==
 
{{Mark|Introduced with Version 9.3:}}
{| width='100%'
|-
| '''Summary'''
|Creates a server-side [[RESTXQ#Forwards and Redirects|RESTXQ forward request]] to the specified {{Code|$path}}. :* The client will not get notified of this forwarding.<br/>* Supplied query parameters will be attached to parameters of the current request.* The {{Code|$parameter}} argument is processed as described in [[#web:create-url|web:create-url]].
|-
| '''Examples'''
|
* The function call <code><nowiki>web:forward('/a/b')</nowiki></code> returns creates the following result (which will be interpreted as forwarding if RESTXQ is used):<pre classsyntaxhighlight lang="brush:xml">
<rest:forward>/a/b</rest:forward>
</pre>* The first RESTXQ function creates an initial database, and forwards to a second function:<pre class="brush:xquery">declare %updating %rest:path('/app/create') function local:create() { db:create('database'), db:output(web:forward('/app/ok'))}; declare %rest:path('/app/ok') function local:ok() { 'The operation was successful'};</presyntaxhighlight>
|}
==web:redirect==
 
{{Mark|Updated with Version 9.3:}} Third argument added.
{| width='100%'
| '''Examples'''
|
* The query <code><nowiki>web:redirect('/a/b')</nowiki></code> returns the following result (which will be interpreted as redirection if RESTXQ is used):<pre classsyntaxhighlight lang="brush:xml">
<rest:response xmlns:rest="http://exquery.org/ns/restxq">
<http:response xmlns:http="http://expath.org/ns/http-client" status="302">
</http:response>
</rest:response>
</pre>* The first RESTXQ function creates an initial database, and redirects to a second function that will access this database:<pre class="brush:xquery">declare %updating %rest:path('/app/init') function local:init() { db:create('app', <root/>, 'root.xml'), db:output(web:redirect('/app/main'))}; declare %rest:path('/app/main') function local:update() { 'Stored documents: ' || count(db:open('app'))};</presyntaxhighlight>
|}
|
* The function call <code>web:response-header()</code> returns:
<pre classsyntaxhighlight lang="brush:xml">
<rest:response xmlns:rest="http://exquery.org/ns/restxq">
<http:response xmlns:http="http://expath.org/ns/http-client"/>
<output:serialization-parameters xmlns:output="http://www.w3.org/2010/xslt-xquery-serialization"/>
</rest:response>
</presyntaxhighlight>
* The following expression returns a media-type for binary data, a caching directive, and the OK status:<br/>
<pre classsyntaxhighlight lang="brush:xquery">
web:response-header(
map { 'media-type': 'application/octet-stream' },
map { 'status': 200, 'message': 'OK' }
)
</presyntaxhighlight>
* The following RESTXQ function returns the contents of a file to the client with correct media type:<br/>
<pre classsyntaxhighlight lang="brush:xquery">
declare %rest:path('media/{$file}') function local:get($file) {
let $path := 'path/to/' || $file
)
};
</presyntaxhighlight>
|}
==web:error==
 
{{Mark|Introduced with Version 9.3:}}
{| width='100%'
;Version 9.3
 
* Added: [[#web:error|web:error]], [[#web:forward|web:forward]]
;Version 9.2
 
* Updated: [[#web:create-url|web:create-url]], [[#web:redirect|web:redirect]]: third argument added.
;Version 9.0
 
* Updated: [[#web:response-header|web:response-header]]: third argument added; default parameters removed.
* Updated: error codes updated; errors now use the module namespace
;Version 8.4
 
* Updated: [[#web:response-header|web:response-header]]: serialization method <code>raw</code> was removed (now obsolete).
;Version 8.2
 
* Added: [[#web:encode-url|web:encode-url]], [[#web:decode-url|web:decode-url]].
The module was introduced with Version 8.1.
Bureaucrats, editor, reviewer, Administrators
13,550

edits

Navigation menu