This web API was built to demonstrate some of the hapi features and functionality. It was part of a talk given at Asyncjs on the 10 October 2013.
The API is a simple calculator that allows you to add, subtract, divide or multiple two numbers. To demonstrate a more common set of API calls I also added methods to store sums into a mongodb database.
You first need to install node.js and mongodb if you do not already have them on your computer. Then download the code from github:
$ git clone https://github.com/glennjones/be-more-hapi.git
or
$ curl -L https://github.com/glennjones/be-more-hapi/tarball/master | tar zx
- Move into the project directory
$ cd be-more-hapi
- Run
$ npm install
- Start the mongodb server
$ mongod
- Run
$ node bin/be-more-hapi
- Connect to the server using
http://localhost:8000
All the sum endpoints are http GET requests. Where the two numbers are the last two fragments of the URL:
http://localhost:8000/sum/multiple/5/6
If the sum is completed without error the response is also a simple format:
{
"equals": 30
}
The error format always has 3 properties; code, error and message. There is an optional fourth property validation which is added if the input is in the incorrect format.
{
"code": 400,
"error": "Bad Request",
"message": "the value of b must be a number",
"validation": {
"source": "path",
"keys": [
"b"
]
}
}
The project has example integration and unit tests. To run the test within the project type the following command
$ mocha --reporter list