😺 Mango API
Getting Started
requires a
node
version >= 6 and annpm
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!