2 releases
0.9.1 | Jul 21, 2024 |
---|---|
0.9.0 | Jul 21, 2024 |
#1277 in Web programming
44KB
610 lines
newsdata-io-api
This crate provides a Rust client for the Newsdata.io API.
Installation
Add the following to your Cargo.toml
:
[dependencies]
newsdata-io-api = "0.9.0"
Usage
-
Get your API key You can get a free API key from Newsdata.io.
-
Create a NewsdataIO instance
use newsdata_io_api::{NewsdataIO, Auth};
// Replace "YOUR_API_KEY" with your actual API key
let newsdata_io = NewsdataIO::new(Auth::new("YOUR_API_KEY".to_string()));
- Make API requests
The NewsdataIO instance provides methods for making various API requests which include following:
- Latest news
- Crypto news
- News archive
- News sources
Examples
Get Latest News
use newsdata_io_api::{NewsdataIO, Auth, LatestNews, GetLatestNewsParams, Flag};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Replace "YOUR_API_KEY" with your actual API key
let newsdata_io = NewsdataIO::new(Auth::new("YOUR_API_KEY".to_string()));
// Get the latest news articles for the US in the business category
let response = newsdata_io
.get_latest(
&GetLatestNewsParams {
country: Some(vec!["us".to_string()]),
category: Some(vec!["business".to_string()]),
size: Some(10), // Get the top 10 articles
full_content: Some(Flag::True), // Include full content
..Default::default()
},
).unwrap();
println!("{}", response);
Ok(())
}
Get Crypto News
use newsdata_io_api::{NewsdataIO, Auth, CryptoNews, GetCryptoNewsParams, Flag};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Replace "YOUR_API_KEY" with your actual API key
let newsdata_io = NewsdataIO::new(Auth::new("YOUR_API_KEY".to_string()));
// Get the latest news articles for the US in the business category
let response = newsdata_io
.get_crypto_news(
&GetCryptoNewsParams {
coin: Some(vec!["BTC".to_string()]),
size: Some(10), // Get the top 10 articles
full_content: Some(Flag::True), // Include full content
..Default::default()
},
).unwrap();
println!("{}", response);
Ok(())
}
Get News Archive
use newsdata_io_api::{NewsdataIO, Auth, NewsArchive, GetNewsArchiveParams};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Replace "YOUR_API_KEY" with your actual API key
let newsdata_io = NewsdataIO::new(Auth::new("YOUR_API_KEY".to_string()));
// Get the latest news articles for the US in the business category
let response = newsdata_io
.get_news_archive(
&GetNewsArchiveParams {
q: "business".to_string(),
..Default::default()
},
).unwrap();
println!("{}", response);
Ok(())
}
Get News Source
use newsdata_io_api::{NewsdataIO, Auth, NewsSources, GetNewsSourcesParams};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Replace "YOUR_API_KEY" with your actual API key
let newsdata_io = NewsdataIO::new(Auth::new("YOUR_API_KEY".to_string()));
// Get the latest news articles for the US in the business category
let response = newsdata_io
.get_news_sources(
&GetNewsSourcesParams {
country: Some(vec!["us".to_string()]),
..Default::default()
},
).unwrap();
println!("{}", response);
Ok(())
}
Dependencies
~4–15MB
~214K SLoC