News Shelf - A Dart based API for news
A News Fetch API Server built using Shelf, configured to enable running with Docker.
Make sure to have a .env file with the required parameters
gnewsapi=<yourkey>
Documentation can be found on the /docs endpoint (and every other non-api endpoint)
Setting up the project
You may need to generate the code files like this:
dart run build_runner build
Running the sample
Running with the Dart SDK
You can run the example with the Dart SDK like this:
$ dart run bin/server.dart
Server listening on port 8080
And then from a second terminal:
$ curl http://0.0.0.0:8080/v1/search?query=AMD
{"metadata":{"source":"..."},"count":...,"articles":[...]}
Running with Docker
If you have Docker Desktop installed, you
can build and run with the docker
command:
$ docker build . -t myserver
$ docker run -it -p 8080:8080 myserver
Server listening on port 8080
And then from a second terminal:
$ curl http://0.0.0.0:8080
Hello, World!
$ curl http://0.0.0.0:8080/echo/I love News
I%20love%20News
You should see the logging printed in the first terminal:
2021-05-06T15:47:04.620417 0:00:00.000158 GET [200] /
2021-05-06T15:47:08.392928 0:00:00.001216 GET [200] /echo/I%20love%20News