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.
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
Reexports
pub use self::params::*; |
pub use self::endpoints::*; |
Modules
| endpoints |
REST API endpoints. |
| params |
Common url params like |
Structs
| HttpRequest |
A general request type that all endpoints can be converted into. |
| Url |
A wrapper around an owned or borrowed url. |
Enums
| HttpMethod |
A standard HTTP verb. |
Functions
| empty_body |
A convenience method for a default, empty body. This method doesn't allocate. |
Type Definitions
| DefaultBody |
A default body type. |