geeny-api-rs
is a Rust Crate for consuming the Geeny APIs as a client. geeny-api-rs
is based on Reqwest.
The Geeny Connect APIs, used for authentication, are exposed via the geeny_api::ConnectApi
structure and related methods.
```rust,norun extern crate geenyapi; use geenyapi::ConnectApi; use geenyapi::models::*;
fn main() { let api = ConnectApi::default();
// first, obtain a token
let log_req = AuthLoginRequest {
email: "demo@email.com".into(),
password: "S3cureP@ssword!".into(),
};
// Login
let response = api.login(&log_req).unwrap();
println!("Your token is: {}", response.token);
// Check token validity
let _ = api.check_token(&response);
// Refresh a Token
let new_response = api.refresh_token(&response).unwrap();
} ```
The Geeny Things APIs, used for creation, deletion, and management of Things, ThingTypes, and MessageTypes, are exposed via the geeny_api::ThingsApi
structure and related methods.
```rust,norun extern crate geenyapi; use geenyapi::ThingsApi; use geenyapi::models::*;
fn main() { let api = ThingsApi::default(); let token = "...".to_string(); // from ConnectApi.login()
// Display all thing types
for tt in api.get_thing_types(&token).unwrap() {
println!("thing type: {:?}", tt);
}
// Display all message types
for mt in api.get_message_types(&token).unwrap() {
println!(": {:?}", mt);
}
// Display all things
for thng in api.get_things(&token).unwrap() {
println!(": {:?}", thng);
}
} ```
This crate has been tested with Stable Rust versions 1.19.0 and above.
In your Cargo.toml
, add the following lines:
toml
[dependencies]
geeny_api = "0.2"
In your main project file (likely lib.rs
or main.rs
), add the following line:
rust,ignore
extern crate geeny_api;
Copyright (C) 2017 Telefónica Germany Next GmbH, Charlottenstrasse 4, 10969 Berlin.
This project is licensed under the terms of the Mozilla Public License Version 2.0.
Contact: devsupport@geeny.io
This crate makes use of the following third party components with the following licenses:
| License | Count | Dependencies | | :------ | :---- | :----------- | | Apache-2.0 | 1 | openssl | | Apache-2.0/MIT | 47 | antidote, backtrace, backtrace-sys, bitflags, bitflags, cfg-if, core-foundation, core-foundation-sys, customderive, dtoa, error-chain, foreign-types, gcc, httparse, hyper-native-tls, idna, itoa, lazystatic, libc, log, native-tls, num-traits, numcpus, percent-encoding, pkg-config, quote, rand, reqwest, rustc-demangle, security-framework, security-framework-sys, serde, serdederive, serdederiveinternals, serdejson, serdeurlencoded, syn, synom, tempdir, time, traitobject, unicode-bidi, unicode-normalization, unicode-xid, url, uuid, vcpkg | | BSD-3-Clause | 3 | adler32, magenta, magenta-sys | | MIT | 20 | advapi32-sys, base64, conv, crypt32-sys, dbghelp-sys, hyper, kernel32-sys, language-tags, libflate, matches, mime, openssl-sys, redoxsyscall, schannel, secur32-sys, typeable, unicase, versioncheck, winapi, winapi-build | | MIT/Unlicense | 1 | byteorder |