apis.is

A json wrapper around publicly open data in Iceland

Usage no npm install needed!

<script type="module">
  import apisIs from 'https://cdn.skypack.dev/apis.is';
</script>

README

APIs.is - Making data pretty since 2012!

The purpose of APIs.is is to make data readily available to anyone interested. All data that is delivered through APIs.is is JSON formatted and scraped from open public websites.

The code that is running the service is open source under the MIT licence. The platform itself is hosted on a load balanced setup by GreenQloud to be as antifragile as possible. The hosted service does not store any information, so all data is gathered on runtime and disregarded immediately afterwards.

Don't hesitate to lend a hand - All knowledge and help is much appreciated!

Maintainers

@kristjanmik

@arnorhs

@benediktvaldez

Build Status

Tests

Currently there are two types of tests, integration and unit tests. All tests are created using Mocha.

To run the integration tests:

 node_modules/mocha/bin/mocha test/integration

 or

 mocha test/integration

To run the unit tests:

 node_modules/mocha/bin/mocha test/unit
 
 or
 
 mocha test/unit

Adding a new Endpoint

Step by Step

  1. View current endpoints for structure and hierarchy.
  2. Add a new folder to the endpoints/ directory with the name of your endpoint.
  3. The file will be loaded automatically. Remember to require the server. Bare minimum example endpoint:
var app = require('../../server');

app.get('/path',function(req,res){
    return res.json({}); //Sends out empty json object
});

Additional requirements

Add integration tests to the endpoint by creating a file called integration_test.js inside a tests/ folder within your endpoint directory. For reference, please take a look at one of the integration tests.

Add documentation for your endpoint

More servers

To ensure close to zero downtime, the plan is to start up more workers/servers around the world so that projects relying on this service will not be affected. Want to help out with that? Feel free to send us a line!

Helpful pointers

  • Endpoints can implement any node module.
  • Information on how to handle requests and responses can be found here.
  • It is much appreciated that endpoints are thoroughly documented and written with care.
  • Issues are managed by the GitHub issue tracker.
  • Have fun and eat some cake! (preferrably chocolate, but whatever floats your boat)