├── .gitignore ├── models └── product.js ├── package.json ├── readme.md ├── routes └── api.js └── server.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules -------------------------------------------------------------------------------- /models/product.js: -------------------------------------------------------------------------------- 1 | 2 | // Dependencies 3 | var restful = require('node-restful'); 4 | var mongoose = restful.mongoose; 5 | 6 | // Schema 7 | var productSchema = new mongoose.Schema({ 8 | name: String, 9 | sku: String, 10 | price: Number 11 | }); 12 | 13 | // Return model 14 | module.exports = restful.model('Products', productSchema); 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "rest", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "body-parser": "^1.9.0", 13 | "express": "^4.9.8", 14 | "mongoose": "^3.8.17", 15 | "node-restful": "^0.1.17" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | ## Building a RESTful API in 5 Minutes 2 | 3 | Code from the video: [https://www.youtube.com/watch?v=p-x6WdwaJco](https://www.youtube.com/watch?v=p-x6WdwaJco) 4 | 5 | #### Requirements 6 | * Node/ NPM 7 | * MongoDB 8 | 9 | #### Install 10 | * npm install 11 | * node server.js 12 | -------------------------------------------------------------------------------- /routes/api.js: -------------------------------------------------------------------------------- 1 | 2 | // Dependencies 3 | var express = require('express'); 4 | var router = express.Router(); 5 | 6 | // Models 7 | var Product = require('../models/product'); 8 | 9 | // Routes 10 | Product.methods(['get', 'put', 'post', 'delete']); 11 | Product.register(router, '/products'); 12 | 13 | // Return router 14 | module.exports = router; 15 | -------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | 2 | // Dependencies 3 | var express = require('express'); 4 | var mongoose = require('mongoose'); 5 | var bodyParser = require('body-parser'); 6 | 7 | // MongoDB 8 | mongoose.connect('mongodb://localhost/rest_test'); 9 | 10 | // Express 11 | var app = express(); 12 | app.use(bodyParser.urlencoded({ extended: true })); 13 | app.use(bodyParser.json()); 14 | 15 | // Routes 16 | app.use('/api', require('./routes/api')); 17 | 18 | // Start server 19 | app.listen(3000); 20 | console.log('API is running on port 3000'); 21 | --------------------------------------------------------------------------------