xdmp.httpPut( uri as String, [options as Object?], [data as Node?] ) as Sequence
Sends an HTTP PUT request to an HTTP server. The HTTP server should return a response, which will differ depending on the action the HTTP server takes for the PUT.
Parameters | |
---|---|
uri | The URI to which the data is to be put. |
options |
Options with which to customize this operation.
This function supports the following options, plus the options from the
xdmp.httpGet
function.
The other options are the same as the other
|
data |
Data to put in the request body. This is an alternative to the
data option for the second parameter that allows binary
content to be specified for the body of the PUT.
|
http://marklogic.com/xdmp/privileges/xdmp-http-put
The http functions only operate on URIs that use the http or https
schemes; specifying a URI that does not begin with http://
or https://
throws an exception.
If an http function times out, it throws a socket received exception (SVC-SOCRECV).
If you expect the request body from this http function to be processed by another application (via a web service, for example), you should specify a content-type header. If no content-type header is specified, the content type defaults to text/plain.
// Send a PUT request to insert a JSON document into the database // using the MarkLogic REST Client API /documents endpoint. The // PUT body contains serialized JSON that becomes the content of // the new document. The data for the PUT body is passed as serialized // JSON in the options parameter. 'use strict'; fn.head( xdmp.httpPut( 'http://example.com:8000/v1/documents?uri=my.json', { authentication : { method : 'digest', username : 'myusername', password : 'mypassword' }, headers: { 'Content-type': 'application/json', Accept: "application/json" }, data: xdmp.quote({this: 'is my document content'}) } )); // MarkLogic returns the response from the HTTP server. In this case, // a response similar to the following: // // {"code":201, // "message":"Created", // "headers":{ // "location":"/v1/documents?uri=my.json", // "server":"MarkLogic", // "content-length":"0", // "connection":"Keep-Alive", // "keep-alive":"timeout=5" // }}
// Send a PUT request to insert a JSON document into the database // using the MarkLogic REST Client API /documents endpoint. The // PUT body contains serialized JSON that becomes the content of // the new document. The data for the PUT body is passed as a // JavaScript object in the data parameter. The JavaScript will be // converted to serialized JSON when MarkLogic constructs the body; // You could also pass a JSON node or other node type. 'use strict'; fn.head( xdmp.httpPut( 'http://example.com:8000/v1/documents?uri=my.json', { authentication : { method : 'digest', username : 'myusername', password : 'mypassword' }, headers: { 'Content-type': 'application/json', Accept: "application/json" } }, {this: 'is my document content'} )); // MarkLogic returns the response from the HTTP server. In this case, // a response similar to the following: // // {"code":201, // "message":"Created", // "headers":{ // "location":"/v1/documents?uri=my.json", // "server":"MarkLogic", // "content-length":"0", // "connection":"Keep-Alive", // "keep-alive":"timeout=5" // }}