@axelspringer/mango-api
    TypeScript icon, indicating that this package has built-in type declarations

    1.0.0-beta.121 • Public • Published

    😺 Mango API


    Taylor Swift Volkswagen TypeScript MIT license

    Getting Started

    requires a node version >= 6 and an npm version >= 3.x.x

    we use Koa as middleware

    we do provide a help command to display all possible arguments

    # Installs the Mango API 
    npm i @axelspringer/mango-api -g
     
    # Starts the Mango API in Mock modus 
    mango-api -d

    Arguments

    most command line arguments have a reflection in environment variables, which allows it to be easily tested and developed in many environments

    help

    Displays all the available arguments

    -wp MANGO_WP (string)

    Sets the url to the WordPress REST endpoint (e.g. http://localhost/wp-json/)

    -m MANGO_MOCK (boolean)

    Enables the Mocks of the Mango API.

    -p MANGO_PORT (string)

    Sets the port of the Mango API.

    -h MANGO_HOST (string)

    Sets the host of the Mango API.

    -t MANGO_TOKEN (string)

    Sets the X-MANGO-TOKEN to the value provided by WP Mango.

    -s MANGO_SECRET (string)

    Sets the X-MANGO-SECRET to the value provided by WP Mango.

    -a MANGO_MOCK_ADAPTER (string)

    Uses a differen adapter for the mock data. This should implement and overload.

    --plugin MANGO_PLUGINS (string)

    Loads an installed plugin (e.g. mango-plugin-pagemanager). If used multiple times, it loads multiple plugins. MANGO_PLUGINS should be used as follows export MANGO_PLUGINS='pagemanager,navigation'.

    const api = require('@axelspringer/mango-api');
     
    function mocks(axios, config) {
      let adapter = new api.MockAdapter(axios, config);
      adapter.get(api.WP.Posts, require('./data/posts.json')).reply(200);
      adapter.get(api.WP.Users, require('./data/users.json')).reply(200);
      adapter.get(api.WP.NavLocations, require('./data/navLocations.json'), true).reply(200);
      adapter.get(api.WP.NavLocations + '/', require('./data/navLocations.json')).reply(200);
      adapter.get(api.WP.NavMenu, require('./data/navMenus.json')).reply(200);
      adapter.get(api.WP.NavItems, require('./data/navItems.json')).reply(200);
      adapter.get(api.WP.Settings, require('./data/settings.json')).reply(200);
    }
     
    exports.default = mocks

    Development

    all commands can be seen via npm run help

    # Clone the repository 
    git clone https://github.com/axelspringer/mango
     
    # enter directory 
    cd mango/packages/api
     
    # Start the local dev server 
    npm start
     
    # To use your local version for development of other mango parts, run 
    npm link

    Have fun!

    License

    MIT

    Keywords

    none

    Install

    npm i @axelspringer/mango-api

    DownloadsWeekly Downloads

    597

    Version

    1.0.0-beta.121

    License

    MIT

    Unpacked Size

    232 kB

    Total Files

    216

    Last publish

    Collaborators

    • 1250c69
    • andreasprang
    • hammi85
    • jan.michalowsky
    • jonas_arkulpa
    • katallaxie
    • preventdefault
    • timmsusa
    • tonimedina