Crate elastic_requests [] [src]

Elasticsearch Request Types

An implementation of the Elasticsearch REST API using strong types for endpoints.

The source is automatically generated from the official spec. A struct is provided for each endpoint that works with borrowed or owned data. There's also a more general HttpRequest type that all requests can be converted into.

Supported Versions

elastic_requests Elasticsearch
0.x 5.x

Usage

All request types provide constructor functions of the form param_1_param_2_param_n:

let req = SearchRequest::for_index_ty(
    "test_index",
    "test_ty",
    "{'query': { 'match_all': {}}}"
);

assert_eq!("/test_index/test_ty/_search", req.url.as_ref());

Or new if the endpoint takes no parameters:

let req = PingRequest::new();

assert_eq!("/", req.url.as_ref());

Parameters can be borrowed or owned string values:

let req = SearchRequest::for_index(
    "test_index".to_string(),
    "{'query': { 'match_all': {}}}"
);

assert_eq!("/test_index/_search", req.url.as_ref());

All request types can be converted into a more general HttpRequest:

fn takes_req<'a, I: Into<HttpRequest<'a>>>(req: I) {
    let req = req.into();

    // do something with the HttpRequest
}

takes_req(PingRequest::new());
takes_req(SearchRequest::for_index("test_index", Body::none()));

Why are these docs useless?

This library is automatically generated, so there's a lot more work to do to get the documentation up to scratch.

Links

Reexports

pub use self::params::*;
pub use self::endpoints::*;

Modules

endpoints

REST API endpoints.

params

Common url params like Id and Index.

Structs

Body
HttpRequest
Url

Enums

HttpMethod