# README
NewsAPI Go Client
Go client for communicating with the newsapi api.
Getting Started
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
Prerequisites
go get github.com/barthr/newsapi
Next up register for free at (https://newsapi.org/register) get yourself a free api key and keep it somewhere save.
Examples
Retrieving all the sources
package main
import (
"fmt"
"net/http"
"context"
"github.com/barthr/newsapi"
)
func main() {
c := newsapi.NewClient("<API KEY>", newsapi.WithHTTPClient(http.DefaultClient))
sources, err := c.GetSources(context.Background(), nil)
if err != nil {
panic(err)
}
for _, s := range sources.Sources {
fmt.Println(s.Description)
}
}
Retrieving all the sources for a specific country (Great britian in this case)
package main
import (
"fmt"
"net/http"
"context"
"github.com/barthr/newsapi"
)
func main() {
c := newsapi.NewClient("<API KEY>", newsapi.WithHTTPClient(http.DefaultClient))
sources, err := c.GetSources(context.Background(), &newsapi.SourceParameters{
Country: "gb",
})
if err != nil {
panic(err)
}
for _, s := range sources.Sources {
fmt.Println(s.Name)
}
}
Retrieving the top headlines
package main
import (
"fmt"
"net/http"
"context"
"github.com/barthr/newsapi"
)
func main() {
c := newsapi.NewClient("<API KEY>", newsapi.WithHTTPClient(http.DefaultClient))
articles, err := c.GetTopHeadlines(context.Background(), &newsapi.TopHeadlineParameters{
Sources: []string{ "cnn", "time" },
})
if err != nil {
panic(err)
}
for _, s := range articles.Articles {
fmt.Printf("%+v\n\n", s)
}
}
Retrieving all the articles
package main
import (
"fmt"
"net/http"
"context"
"github.com/barthr/newsapi"
)
func main() {
c := newsapi.NewClient("<API KEY>", newsapi.WithHTTPClient(http.DefaultClient))
articles, err := c.GetEverything(context.Background(), &newsapi.EverythingParameters{
Sources: []string{ "cnn", "time" },
})
if err != nil {
panic(err)
}
for _, s := range articles.Articles {
fmt.Printf("%+v\n\n", s)
}
}
License
This project is licensed under the MIT License
Acknowledgments
- Inspiration from github golang client