Crates.io | abstractapi |
lib.rs | abstractapi |
version | 0.1.3 |
source | src |
created_at | 2021-11-10 09:28:09.641062 |
updated_at | 2022-01-19 16:17:40.251725 |
description | Rust API bindings for the Abstract HTTP API |
homepage | https://github.com/orhun/abstractapi-rs |
repository | https://github.com/orhun/abstractapi-rs |
max_upload_size | |
id | 479568 |
size | 60,049 |
Rust API bindings for the Abstract HTTP API.
abstractapi-rs
is compatible with v1
versions of the following API's that Abstract provides:
Add abstractapi
to dependencies in your Cargo.toml
:
[dependencies]
abstractapi = "0.1.*"
In order to interact with the APIs, you need to create a client (AbstractApi
) first:
let mut abstractapi = abstractapi::AbstractApi::default();
Then you should set an API key specific for the API you would like to use. Here is an example for Geolocation API:
abstractapi.set_api_key(abstractapi::ApiType::Geolocation, "<api_key>").unwrap();
See ApiType
enum for currently supported APIs.
The next step would be calling the function related to the API you want to use:
let geolocation: abstractapi::api::Geolocation = abstractapi.get_geolocation("172.217.19.142").unwrap();
Function parameters and return values (Struct
s) are directly mapped from the official API documentation so you may frequently need to refer to it for the meaning of these fields.
prelude
module for glob-importing the common types.new_with_api_keys
)Here is a full example that shows the basic usage of phone validation API:
use abstractapi::prelude::*;
fn main() -> Result<(), AbstractApiError> {
// Create a new Abstract API client for phone validation.
let abstractapi = AbstractApi::new_with_api_key(
ApiType::PhoneValidation,
std::env::var("PHONE_VALIDATION_API_KEY").unwrap(),
)?;
// Get the phone number details.
let phone_details: PhoneDetails = abstractapi.validate_phone("14152007986")?;
// Print the result.
println!("{:#?}", phone_details);
Ok(())
}
Look through the examples folder to see how the library can be used for integrating different APIs.
Pull requests are welcome!
All code is dual-licensed under The MIT License and Apache 2.0 License.