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

Search::Elasticsearch::Role::Client::Direct3pm

Request parsing for direct clients

Version

version 8.12

Overview

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.

Releases

5 releases since Debian 9 (Stretch); the text changed 4 times.

  1. 9
  2. 10
  3. 11
  4. 12
  5. 13

Author

Enrico Zimuel <[email protected]>

From libsearch-elasticsearch-perl 8.12-1 in Debian 13 (Trixie). Parsed by carta from the page's man source.