To illustrate the 12 factors, we start by creating a simple Node.js application as a HTTP Rest API exposing CRUD verbs on a message model.
There is a couple of prerequisite to build this application
| HTTP verb | URI | Action |
|---|---|---|
| GET | /message | list all messages |
| GET | /message/ID | get message with ID |
| POST | /message | create a new message |
| PUT | /message/ID | modify message with ID |
| DELETE | /message/ID | delete message with ID |
- Install Sails.js (it's to Node.js what RoR is to Ruby):
sudo npm install sails -g - Create the application:
sails new messageApp && cd messageApp - Create the
messageapi:sails generate api message - Launch the application:
sails lift
Create new messages
curl -XPOST http://localhost:1337/message?text=hello
curl -XPOST http://localhost:1337/message?text=hola
Get list of messages
curl http://localhost:1337/message
[
{
"text": "hello",
"createdAt": "2015-11-08T13:15:15.363Z",
"updatedAt": "2015-11-08T13:15:15.363Z",
"id": "5638b363c5cd0825511690bd"
},
{
"text": "hola",
"createdAt": "2015-11-08T13:15:45.774Z",
"updatedAt": "2015-11-08T13:15:45.774Z",
"id": "5638b381c5cd0825511690be"
}
]
Modify a message
curl -XPUT http://localhost:1337/message/5638b363c5cd0825511690bd?text=hey
Delete a message
curl -XDELETE http://localhost:1337/message/5638b381c5cd0825511690be
Get updates list of messages
curl http://localhost:1337/message
[
{
"text": "hey",
"createdAt": "2015-11-08T13:15:15.363Z",
"updatedAt": "2015-11-08T13:19:40.179Z",
"id": "5638b363c5cd0825511690bd"
}
]