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

24 downloads per month
Used in hub-sdk

MPL-2.0 license

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
~497K SLoC