9个版本
0.2.5 | 2022年5月2日 |
---|---|
0.2.4 | 2022年5月2日 |
0.2.3 | 2021年4月23日 |
0.1.9 | 2021年4月18日 |
在HTTP客户端中排名第261
每月下载量67次
18KB
371 行
maxmind_geo_ip2 API客户端
完整文档请见此处:https://docs.rs/maxmind_geo_ip2/
Crates.io页面请见此处:https://crates.io/crates/maxmind_geo_ip2
警告:这仍然是一个非常正在进行中的项目 - 可能/肯定不应该在生产中使用。
这是我第一个Rust crate,所以任何关于改进等的建议都非常欢迎。
待办事项
- 错误处理
- 响应状态检查
依赖项
reqwest = { version = "0.11.3", features = ["rustls", "json"] }
serde = { version = "1.0.125", features = ["derive"] }
使用方法
从crate中导入api客户端
use maxmind_geo_ip2::ApiClient;
使用Maxmind API凭据初始化客户端
let maxmind_client = ApiClient::new_client(String::from("user_id_here"), String::from("license_key_here"));
方法
获取国家
API端点
https://geoip.maxmind.com/geoip/v2.1/country/{ip_address}
方法签名
get_country(ip_address: &str) -> Result<CountryResponse, Box<dyn std::error::Error>>
响应
pub struct CountryResponse {
pub continent: Continent,
pub maxmind: MaxMind,
pub traits: Traits,
pub represented_country: Option<RepresentedCountry>,
pub registered_country: RegisteredCountry,
pub country: Country,
}
获取城市
API端点
https://geoip.maxmind.com/geoip/v2.1/city/{ip_address}
方法签名
get_city(ip_address: &str) -> Result<CityResponse, Box<dyn std::error::Error>>
响应
pub struct CityResponse {
pub city: City,
pub continent: Continent,
pub country: Country,
pub location: Location,
pub postal: Postal,
pub represented_country: Option<RepresentedCountry>,
pub registered_country: RegisteredCountry,
pub subdivisions: Vec<Subdivision>,
pub traits: Traits,
pub maxmind: MaxMind,
}
获取洞察
API端点
https://geoip.maxmind.com/geoip/v2.1/insights/{ip_address}
方法签名
get_insights(ip_address: &str) -> Result<InsightsResponse, Box<dyn std::error::Error>>
响应
pub struct InsightsResponse {
pub city: City,
pub continent: Continent,
pub country: Country,
pub location: Location,
pub postal: Postal,
pub represented_country: Option<RepresentedCountry>,
pub registered_country: RegisteredCountry,
pub subdivisions: Vec<Subdivision>,
pub traits: Traits,
pub maxmind: MaxMind,
}
依赖项
~4–16MB
~254K SLoC