newsapi 0.7.0

Wrapper for the newsapi, uses reqwest to do the http work. A learn by doing project
Documentation
# The News API Rust Library

[![Build Status](https://github.com/biomunky/newsapi/workflows/CI/badge.svg)](https://github.com/biomunky/newsapi/actions?query=workflow%3ACI)

- [The News API Rust Library]#the-news-api-rust-library
  - [Breaking changes**](#breaking-changes)
  - [Summary](#summary)
  - [Notes](#notes)
  - [Examples](#examples)
  - [License](#license)
  - [Disclaimer](#disclaimer)

[The News API](https://newsapi.org/) allows you to get breaking news headlines, and search for articles from over 30,000 news sources and blogs.

## Breaking changes**

- Version 0.5.x renames the `Client` struct to `NewsAPIClient`. See [examples](examples/) for demonstrated usage.

- Version 0.4.x introduces async fetch. While synchronous functionality is retained, the relevant functions have been renamed. Please check [examples](examples/) for further details. The core change is `send` has been replaced with `send_async` and `send_sync` for the asynchronous and synchronous variants respectively.

## Summary

All you need is an API key to

- Search live top headlines or search all articles
- New articles available with 15 minute delay
- And Search articles up to a month old
- Get short article snippet or descriptions

The following limits apply

- 1,000 requests per day
- No extra requests available
- No uptime SLA
- Basic support
- NewsAPI.org attribution required

See [here for pricing](https://newsapi.org/pricing)

## Notes

There are three endpoints

1. [Top Headlines](https://newsapi.org/docs/endpoints/top-headlines)
2. [Everything](https://newsapi.org/docs/endpoints/everything)
3. [Sources](https://newsapi.org/docs/endpoints/sources)

Top Headlines and Everything endpoints are wrapped by an Article struct and Sources by a Source struct. Both currently provide limited functionality.

## Examples

As described in [The Cargo Book](https://doc.rust-lang.org/cargo/guide/project-layout.html) the project has some simple examples in [examples/](examples/). These can be run via cargo after you've exported your NEWSAPI_KEY

```shell
export NEWSAPI_KEY=5h79off128957edb3179y5da1nb36y9e
```

To list all examples:

```shell
cargo run --example
```

to run a specific example

```shell
cargo run --example get_sources_async
```

## License

Licensed under MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

## Disclaimer

We have no affiliation with the [News API](https://github.com/News-API-gh) team.