Search::Elasticsearch::Role::Client::Direct(3p)

NAME
Search::Elasticsearch::Role::Client::Direct - Request parsing for Direct clients

VERSION
version 6.00

DESCRIPTION
This role provides the single parse_request() method for classes which need to parse an API definition from Search::Elasticsearch::Role::API and convert it into a request which can be passed to "perform_request()" in Search::Elasticsearch::Transport.

METHODS

  perform_request()
    $request = $client->parse_request(\%defn,\%params);

The %defn is a definition returned by "api()" in Search::Elasticsearch::Role::API with an extra key "name" which should be the name of the method that was called on the client. For instance if the user calls "$client->search", then the "name" should be "search".

parse_request() will turn the parameters that have been passed in into a "path" (via "path_init()" in Search::Elasticsearch::Util::API::Path), a query-string hash (via "qs_init" in Search::Elasticsearch::Util::API::QS) and will through a "body" value directly.

NOTE: If a "path" key is specified in the %params then it will be used directly, instead of trying to build path from the path template. Similarly, if a "params" key is specified in the %params, then it will be used as a basis for the query string hash. For instance:

    $client->perform_request(
        {
            method => 'GET',
            name   => 'new_method'
        },
        {
            path   => '/new/method',
            params => { foo => 'bar' },
            body   => \%body
        }
    );

This makes it easy to add support for custom plugins or new functionality not yet supported by the released client.

AUTHOR
Clinton Gormley <drtech@cpan.org>

COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Elasticsearch BV.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004