0.7.0 • Published 4 years ago

swapi-node v0.7.0

Weekly downloads
18
License
BSD
Repository
github
Last release
4 years ago

swapi-node Node.js CIDependency Status Coverage Status

A Node.js helper library for http://swapi.dev/ - the Star Wars API

Requirements

  • node.js - 0.12.0+ (Uses Native Promises)
  • love of Star Wars

Installation

npm install swapi-node

Usage

const swapi = require('swapi-node');

swapi.people({ id: 1 }).then((result) => {
    console.log(result);
});

There is a general get method that takes a url. So this is also possible:

swapi.get('https://swapi.dev/api/people/?page=2').then((result) => {
    console.log(result);
});

When you call a "Base URL", like https://swapi.dev/api/people/, it will include a next and previous parameter. These will be the link to the next/previous page of data.

There are helper methods to get results from the next/previous page called nextPage and previousPage. Each of these returns a Promise

Here is an example

swapi.get('https://swapi.dev/api/people/').then((result) => {
    console.log(result);
    return result.nextPage();
}).then((result) => {
    console.log(result);
    return result.previousPage();
}).then((result) => {
    console.log(result);
}).catch((err) => {
    console.log(err);
});

Sub Resources

There are some values that return a link. To make it easier to deal with these, there are corresponding getters for those properties.

For example, a call to people({id: 1}) might return this json:

{
    "name": "Luke Skywalker",
    "height": "172",
    "mass": "77",
    "hair_color": "blond",
    "skin_color": "fair",
    "eye_color": "blue",
    "birth_year": "19BBY",
    "gender": "male",
    "homeworld": "https://swapi.dev/api/planets/1/",
    "films": [
        "https://swapi.dev/api/films/1/",
        "https://swapi.dev/api/films/2/",
        "https://swapi.dev/api/films/3/",
        "https://swapi.dev/api/films/6/"
    ],
    "species": [],
    "vehicles": [
        "https://swapi.dev/api/vehicles/14/",
        "https://swapi.dev/api/vehicles/30/"
    ],
    "starships": [
        "https://swapi.dev/api/starships/12/",
        "https://swapi.dev/api/starships/22/"
    ],
    "created": "2014-12-09T13:50:51.644000Z",
    "edited": "2014-12-20T21:17:56.891000Z",
    "url": "https://swapi.dev/api/people/1/"
}

taking "homeworld" as an example, you can now call getHomeworld(), which will return a Promise

getHomeworld().then((result) => {
    console.log(result);
});

This might produce some json like this:

{
    "name": "Tatooine",
    "rotation_period": "23",
    "orbital_period": "304",
    "diameter": "10465",
    "climate": "arid",
    "gravity": "1 standard",
    "terrain": "desert",
    "surface_water": "1",
    "population": "200000",
    "residents": [
        "https://swapi.dev/api/people/1/",
        "https://swapi.dev/api/people/2/",
        "https://swapi.dev/api/people/4/",
        "https://swapi.dev/api/people/6/",
        "https://swapi.dev/api/people/7/",
        "https://swapi.dev/api/people/8/",
        "https://swapi.dev/api/people/9/",
        "https://swapi.dev/api/people/11/",
        "https://swapi.dev/api/people/43/",
        "https://swapi.dev/api/people/62/"
    ],
    "films": [
        "https://swapi.dev/api/films/1/",
        "https://swapi.dev/api/films/3/",
        "https://swapi.dev/api/films/4/",
        "https://swapi.dev/api/films/5/",
        "https://swapi.dev/api/films/6/"
    ],
    "created": "2014-12-09T13:50:49.641000Z",
    "edited": "2014-12-21T20:48:04.175778Z",
    "url": "https://swapi.dev/api/planets/1/"
}

Note

This API tries to follow the API for the Python helper lib here: https://github.com/phalt/swapi-python

For documentation on the Star Wars API, check out their docs: http://swapi.dev/documentation

Breaking Changes

  • 0.3.0 - Usage of Native Promises, Node 0.12+ or greater needed
0.7.0

4 years ago

0.6.0

5 years ago

0.5.0

5 years ago

0.4.4

7 years ago

0.4.3

8 years ago

0.4.2

8 years ago

0.4.1

8 years ago

0.4.0

10 years ago

0.4.0-dev

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.2.0

11 years ago

0.1.0

11 years ago

0.0.4

11 years ago

0.0.3

11 years ago

0.0.2

11 years ago

0.0.1

11 years ago