A repository for Node as a Web Api talk at Angle Brackets 2015 conference
Slides available here
NPM global modules:
npm install -g gulp bunyan json
git clone [email protected]:sartioli/node-web-api.git cd node-web-api cd 01-basic_server node index.js cd 02-express npm install node index.js cd 03-express npm install node index.js curl -s -H "Content-Type: application/json" -X POST -d '{"name":"jessy","age":"3","type":"siamese"}' http://localhost:3000/cat | json curl -s -H "Content-Type: application/json" -X POST -d '{"name":"sam","age":"5","type":"alley"}' http://localhost:3000/cat | json curl -s -X GET http://localhost:3000/cat | json curl -s -H "Content-Type: application/json" -X PUT -d '{"name":"sam","age":"8","type":"alley"}' http://localhost:3000/cat/sam | json curl -s -X DELETE http://localhost:3000/cat/sam | json https://www.mongodb.org/downloads
On Mac I recommend homebrew
brew up brew install mongodb cd 04-mongodb npm install nodemon index.js # mongo commands show dbs use cats db.cats.find() db.cats.remove({}) use cats db.dropDatabase() https://github.com/request/request
cd 05-request npm install forever start cat_server.js forever start dog_server.js forever list curl -s -H "Content-Type: application/json" -X POST -d '{"name":"jessy","age":"3","type":"boxer"}' http://localhost:3000/dog | json curl -s -H "Content-Type: application/json" -X POST -d '{"name":"sam","age":"5","type":"bulldog"}' http://localhost:3000/dog | json curl -s -X GET http://localhost:3000/dog | json curl -s -H "Content-Type: application/json" -X PUT -d '{"name":"sam","age":"8","type":"bulldog"}' http://localhost:3000/dog/ID | json curl -s -X DELETE http://localhost:3000/dog/ID | json nodemon pet_server.js https://github.com/caolan/async
cd 06-async npm install forever start cat_server.js forever start dog_server.js forever list nodemon pet_server.js https://github.com/caolan/async
cd 07-non_blocking npm install forever stopall forever start cat_server.js forever start dog_server.js forever list nodemon pet_server.js http://localhost:3002/petshttp://localhost:3002/ping
On Mac I recommend homebrew
brew up brew install redis cd 08-redis npm install forever stopall forever start cat_server.js forever start dog_server.js forever list nodemon pet_server.js curl -s -H "Content-Type: application/json" -X POST -d '{"name":"jessy","age":"3","type":"siamese"}' http://localhost:3000/cat | json curl -s -H "Content-Type: application/json" -X POST -d '{"name":"sam","age":"5","type":"alley"}' http://localhost:3000/cat | json curl -s -H "Content-Type: application/json" -X POST -d '{"name":"joe","age":"4","type":"garfield"}' http://localhost:3000/cat | json curl -s -H "Content-Type: application/json" -X POST -d '{"name":"mama","age":"9","type":"tabby"}' http://localhost:3000/cat | json curl -s -X GET http://localhost:3000/cat | json http://localhost:3002/catname/ID
# Useful redis commands redis-cli set key value get key keys * flushdb cd 09-auth npm install gulp | bunyan -l info --color http://localhost:3000/api/latest/basic/pinghttp://localhost:3000/api/latest/basic/confighttp://localhost:3000/api/latest/basic/echo/yourname
curl -s -H "Content-Type: application/json" -X POST -d '{"email":"[email protected]","password":"123"}' http://localhost:3000/api/latest/auth/signup | json http://localhost:3000/api/latest/auth/ping
curl -s -X GET -H "x-access-token: TOKEN" http://localhost:3000/api/latest/auth/ping | json curl -s -H "Content-Type: application/json" -X POST -d '{"email":"[email protected]","password":"123"}' http://localhost:3000/api/latest/auth/login | json