Expand description
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.
Request types are generic over the body buffer, B
.
This gives you a lot of flexibility when designing APIs,
but you should be careful to ensure the B
is bound appropriately.
§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
.
In this example, takes_req
accepts anything that can be converted into
a HttpRequest
where the body buffer is AsRef<[u8]>
:
fn takes_req<'a, I: Into<HttpRequest<'a, B>>, B: AsRef<[u8]>>(req: I) {
let req = req.into();
let body = req.body.as_ref();
// do something with the request
}
takes_req(PingRequest::new());
takes_req(SearchRequest::for_index("test_index", empty_body()));
§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
Re-exports§
Modules§
Structs§
- Http
Request - A general request type that all endpoints can be converted into.
- Url
- A wrapper around an owned or borrowed url.
Enums§
- Http
Method - A standard HTTP verb.
Functions§
- empty_
body - A convenience method for a default, empty body. This method doesn’t allocate.
Type Aliases§
- Default
Body - A default body type.