4 releases
Uses old Rust 2015
0.3.0 | Oct 20, 2017 |
---|---|
0.2.2 | Oct 18, 2017 |
0.2.1 | Oct 12, 2017 |
0.2.0 | Sep 8, 2017 |
#6 in #consuming
Used in hub-sdk
39KB
435 lines
Geeny API Interface Library
Introduction
geeny-api-rs
is a Rust Crate for consuming the Geeny APIs as a client. geeny-api-rs
is based on Reqwest.
Installation & Configuration
In your Cargo.toml
, add the following lines:
[dependencies]
geeny-api = "0.2"
In your main project file (likely lib.rs
or main.rs
), add the following line:
extern crate geeny_api;
Components
Connect API
The Geeny Connect APIs, used for authentication, are exposed via the geeny_api::ConnectApi
structure and related methods.
Example
extern crate geeny_api;
use geeny_api::ConnectApi;
use geeny_api::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();
}
Things API
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.
Example
extern crate geeny_api;
use geeny_api::ThingsApi;
use geeny_api::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);
}
}
Requirements
This crate has been tested with Stable Rust versions 1.19.0 and above.
License
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
Third Party Components
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, custom_derive, dtoa, error-chain, foreign-types, gcc, httparse, hyper-native-tls, idna, itoa, lazy_static, libc, log, native-tls, num-traits, num_cpus, percent-encoding, pkg-config, quote, rand, reqwest, rustc-demangle, security-framework, security-framework-sys, serde, serde_derive, serde_derive_internals, serde_json, serde_urlencoded, 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, redox_syscall, schannel, secur32-sys, typeable, unicase, version_check, winapi, winapi-build |
MIT/Unlicense | 1 | byteorder |
Dependencies
~17–28MB
~490K SLoC