Core
Write Plugins v1.x
1

Request #

Object representation of a Kuzzle API call.

That object is continuously updated to reflect the current state of the request, during its entire lifecycle.

For more information about this object, refer to its technical documentation.


Response headers #

Network protocol specific headers can be added to the response. If the protocol supports it, these headers are forwarded in the response sent to the client.

As Kuzzle supports the HTTP protocol natively, the Request object handles HTTP headers special cases. Other network protocols headers are stored in raw format, and protocols have to handle their own specific headers manually.

To customize the response content, read the RequestResponse documentation.


Constructor #

/

Deprecated since 1.2.0

Copied to clipboard!
new Request(request, data, [options]);
Available since 1.2.0
Copied to clipboard!
new Request(data, [options]);

Arguments Type Description
request
Request
A source request to inherit from
data
object
API call, following the same format than non-HTTP API calls
options
object
Additional request context

options #

The options argument accepts the following parameters:

Options Type Description
connection
object
Available since 1.4.1
Connection information (see the connection object documentation)
connectionId
string
Deprecated since 1.4.1
Connection unique identifier
error KuzzleError, Error Sets the request response with the provided error
requestId
string
User-defined request identifier
result
*
Sets the request response with the provided result, and the request status is set to 200
status
integer
Request status, following the HTTP error code standard

Properties #

Read-only:

Property Type Description
context
RequestContext
General request information (logged user, network information, ...)
error KuzzleError Request error
input
RequestInput
Input request representation
response
RequestResponse
Serialized request response
result
*
Request result
timestamp
integer
Request creation timestamp, in Epoch-millis format

Writable:

Property Type Description
id
string
User-defined request unique identifier
status
integer
Request status code

clearError #

Clears the error: sets the error property to null, and the request status to 200.


serialize #

Serializes the request into into a pair of objects that can be sent across the network, and then used to rebuild another equivalent Request object.

Example #

Copied to clipboard!
const foo = request.serialize();
const bar = new context.constructors.Request(foo.data, foo.options);

setError #

Adds an error to the request.

The request status is also updated to the error status.

Argument #

Copied to clipboard!
setError(error);

Arguments Type Description
error KuzzleError Request error

If a KuzzleError object is provided, the request's status attribute is set to the error one.

Otherwise, the provided error is embedded into a InternalError object, and the request status is set to 500.


setResult #

Sets the request result.

Arguments #

Copied to clipboard!
setResult(result, [options]);

Arguments Type Description
result
*
Request result
options
object
Optional result configuration

options #

The options argument accepts the following parameters:

Options Type (default) Description
headers
object (null)
Network specific headers. Shortcut to the response header functions
raw
boolean (false)
If true, instead of a standard kuzzle response, the result is sent as is to the client, without being interpreted
status
integer (200)
Request status

Example #

Send a PDF

Copied to clipboard!
async sendPdf (request) {
  const file = fs.readFileSync('./file.pdf');

  request.setResult(null, {
    raw: true,
    headers: {
      'Content-Length': file.length.toString(),
      'Content-Type': 'application/pdf',
      'Content-Disposition': `attachment; filename="file.pdf"`,
      'Cache-Control': 'no-cache'
    }
  });

  return file;
}