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 (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.
- You can use the
prelude
module 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