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;
}