74 lines
1.3 KiB
Plaintext
74 lines
1.3 KiB
Plaintext
[[transport]]
|
|
=== Transport
|
|
|
|
This class is responsible for performing the request to {es} and handling
|
|
errors, it also handles sniffing.
|
|
|
|
[source,js]
|
|
----
|
|
const { Client } = require('@elastic/elasticsearch')
|
|
const { Transport } = require('@elastic/transport')
|
|
|
|
class MyTransport extends Transport {
|
|
request (params, options, callback) {
|
|
// your code
|
|
}
|
|
}
|
|
|
|
const client = new Client({
|
|
Transport: MyTransport
|
|
})
|
|
----
|
|
|
|
Sometimes you need to inject a small snippet of your code and then continue to
|
|
use the usual client code. In such cases, call `super.method`:
|
|
|
|
[source,js]
|
|
----
|
|
class MyTransport extends Transport {
|
|
request (params, options, callback) {
|
|
// your code
|
|
return super.request(params, options, callback)
|
|
}
|
|
}
|
|
----
|
|
|
|
==== Supported content types
|
|
|
|
Depending on the `content-type` of the response, the transport will return the body as different types:
|
|
|
|
[cols="1,1"]
|
|
|===
|
|
|Content-Type |JavaScript type
|
|
|
|
|`application/json`
|
|
|`object`
|
|
|
|
|`text/plain`
|
|
|`string`
|
|
|
|
|`application/vnd.elasticsearch+json`
|
|
|`object`
|
|
|
|
|`application/vnd.mapbox-vector-tile`
|
|
|`Buffer`
|
|
|
|
|`application/vnd.apache.arrow.stream`
|
|
|`Buffer`
|
|
|
|
|`application/vnd.elasticsearch+arrow+stream`
|
|
|`Buffer`
|
|
|
|
|`application/smile`
|
|
|`Buffer`
|
|
|
|
|`application/vnd.elasticsearch+smile`
|
|
|`Buffer`
|
|
|
|
|`application/cbor`
|
|
|`Buffer`
|
|
|
|
|`application/vnd.elasticsearch+cbor`
|
|
|`Buffer`
|
|
|===
|