Files
elasticsearch-js/docs/extending_core_components.asciidoc
2014-01-16 16:00:23 -07:00

32 lines
1.1 KiB
Plaintext

[[extending_core_components]]
== Extending
We decided to make this client low-level, and as such we probably have not implemented all the features you are looking for. For this reason, we made extending or even replacing the core components simple.
=== Connection
Coming Soon
=== ConnectionPool
Coming Soon
=== Log
see <<logging>>.
=== Client/API
Extending or replacing the API that Elasticsearch.js provides is a simple as it should be in JS. To provide an entirely new API, just add it to the Client constructor's `api` property like so:
[source,js]
--------------
var myApi = {
getDog: function () { ... }
};
elasticsearch.Client.apis.mine = myApi;
var client = new elasticsearch.Client({
apiVersion: 'mine'
});
client.getDog( ... );
--------------
When the client is created, it's prototype is set to the API version selected, and therefore you can access the client via the `this` variable within your API methods. Make requests within your methods using `this.transport.request(params, cb)`. For more information about the transport, see <<transport-reference>>.