Rust API bindings for the Abstract HTTP API.
abstractapi-rs is compatible with v1 versions of the following API's that Abstract provides:
- Verify
- Lookup
- Create
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 (Structs) are directly mapped from the official API documentation so you may frequently need to refer to it for the meaning of these fields.
- You can use the
preludemodule for glob-importing the common types. - There are alternative constructor methods available for creating a client with API keys. (e.g.
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.
Copyright © 2021-2023, Orhun Parmaksız