Crate bgpkit_broker[][src]

Expand description

Overview

bgpkit-broker is a package that allow access the BGPKIT Broker API and search for BGP archive files with different search parameters available.

Examples

Using Iterator

The recommended usage to collect BrokerItems is to use the built-in iterator. The BrokerItemIterator handles making API queries so that it can continuously stream new items until it reaches the end of items. This is useful for simply getting all matching items without need to worry about pagination.

use bgpkit_broker::{BgpkitBroker, BrokerItem, QueryParams};

let mut params = QueryParams::new();
params = params.start_ts(1634693400);
params = params.end_ts(1634693400);
params = params.page_size(10);
params = params.page(2);

let mut broker = BgpkitBroker::new("https://api.broker.bgpkit.com/v1");
broker.set_params(&params);

// method 1: create iterator from reference (so that you can reuse the broker object)
// same as `&broker.into_iter()`
for item in &broker {
    println!("{:?}", item);
}

// method 2: create iterator from the broker object (taking ownership)
let items = broker.into_iter().collect::<Vec<BrokerItem>>();

assert_eq!(items.len(), 48);

Making Individual Queries

User can make individual queries to the BGPKIT broker backend by calling BgpkitBroker::query function. The function takes a QueryParams reference as parameter to construct the query URL.

Below is an example of creating an new struct instance and make queries to the API:

use bgpkit_broker::{BgpkitBroker, QueryParams};

let mut params = QueryParams::new();
params = params.start_ts(1634693400);
params = params.end_ts(1634693400);
params = params.page(3);
params = params.page_size(10);

let broker = BgpkitBroker::new("https://api.broker.bgpkit.com/v1");
let res = broker.query(&params);
for data in res.unwrap() {
    println!("{} {} {} {}", data.timestamp, data.data_type, data.collector_id, data.url);
}

Making individual queries is useful when you care about specific pages, or want to implement customized iteration procedure.

Structs

BgpkitBroker struct maintains the broker’s URL and handles making API queries.

BGPKIT Broker data item.

Iterator for BGPKIT Broker that iterates through one BrokerItem at a time.

The Errors that may occur when processing a Request.

QueryParams represents the query parameters to the backend API.

Enums

Broker error enum.

Sorting order enum