swapijs

Javascript client for SWAPI (a Star Wars API).

Usage no npm install needed!

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

README

swapijs

Javascript client for SWAPI (a Star Wars API).

Resources

swapi.films
swapi.people
swapi.planets
swapi.species
swapi.vehicles
swapi.starships

Each function returns a new 'Resource' - an interface for fetching different types of data from the API.

var peopleResource = swapi.people();

Fetching data

A resource has a single main method: get. It accepts two optional parameters: an id, and a callback function.

peopleResource.get('2', callback);

Providing an id will fetch a single resource, ommitting it will return multiple.

peopleResource.get(callback);

All data returned from list end points on the SWAPI API is paginated. Calling resource.get without the id parameter will fetch the first page of data for that resource. Subsequent calls will return each following page in turn, until the resource is depleted.

Resources cache all data returned by the API by url.

Error first

Callbacks follow the error first callback paradigm.

peopleResource.get(function(error, response) {
    if (error) {
        console.log(error);
        return;
    }
    console.log(response);
});

 Events

You can also listen for events on resources:

The 'added' event is triggered when the resource has successfully fetched new data. The callback recieves the array of results, and the response dictionary.

peopleResource.on('added', function(added, responsee) {
    
});

The 'depleted' event is triggered when a response is returned that doesn't contain a URL for fetching further data from that resource.

peopleResource.on('depleted', function() {
    
});

The 'empty' event is triggered whenever get is called on a depleted resource.

peopleResource.on('empty', function() {
    
});