Last active
June 17, 2018 10:17
-
-
Save Nishchit14/2ac3109790f1ae5133c55be89466f47e to your computer and use it in GitHub Desktop.
Express vs Koa vs Hapi - REST APIs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Expressjs REST APIs | |
const express = require('express'); | |
const app = express(); | |
cosnt router = express.Router(); | |
let getUsersHandler = (req, res, next)=> { | |
//fetch users from database via ORM | |
res.send('Get - list users'); | |
} | |
let creatUserHandler = (req, res, next)=> { | |
// Store user data via ORM | |
console.log('post', req.body) | |
res.send('Post- User successfully created'); | |
} | |
let getUserHandler = (req, res, next)=> { | |
// fetch user details via ORM | |
console.log('User id:', req.params.id) | |
res.send('Get- User id: ' + req.params.id); | |
} | |
let updateUserHandler = (req, res, next)=> { | |
// update user details via ORM | |
console.log('User id:', req.params.id) | |
res.send('Put- User id: ' + req.params.id); | |
} | |
let deleteUserHandler = (req, res, next)=> { | |
// delete user via ORM | |
console.log('User id:', req.params.id) | |
res.send('Delete User id: ' + req.params.id); | |
} | |
router.route('/users') | |
.get(getUsersHandler) | |
.post(creatUserHandler); | |
router.route('/users/:id') | |
.get(getUserHandler) | |
.put(updateUserHandler) | |
.delete(deleteUserHandler); | |
app.use('/api', router); | |
// index, landing page | |
app.get('/', (req, res)=> { | |
res.send('Hello world, this is landing page'); | |
}); | |
let server = app.listen(3000, ()=> { | |
console.log('Express is listening to http://localhost:3000'); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//Hapi REST APIs | |
const Hapi = require('hapi'); | |
const server = new Hapi.Server(3000); | |
server.route([ | |
{ | |
method: 'GET', | |
path: '/api/users', | |
handler: (request, reply)=> { | |
reply('Get all users'); | |
} | |
}, | |
{ | |
method: 'GET', | |
path: '/api/users/{id}', | |
handler: (request, reply)=> { | |
reply('Get user id: ' + request.params.id); | |
} | |
}, | |
{ | |
method: 'POST', | |
path: '/api/users', | |
handler: (request, reply)=> { | |
reply('Post- create User'); | |
} | |
}, | |
{ | |
method: 'PUT', | |
path: '/api/users/{id}', | |
handler: (request, reply)=> { | |
reply('Put user id: ' + request.params.id); | |
} | |
}, | |
{ | |
method: 'DELETE', | |
path: '/api/users/{id}', | |
handler: (request, reply)=> { | |
reply('Delete user id: ' + request.params.id); | |
} | |
}, | |
{ | |
method: 'GET', | |
path: '/', | |
handler: (request, reply)=> { | |
reply('Hello world, this is the landing page'); | |
} | |
} | |
]); | |
server.start(()=> { | |
console.log('Hapi is listening to http://localhost:3000'); | |
}); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Koa REST APIs | |
const koa = require('koa'); | |
const Router = require('koa-router'); | |
const app = new Koa(); | |
const router = new Router(); | |
router | |
.get('/api/users', async(ctx) => { | |
ctx.body = 'Get - List all users'; | |
}) | |
.get('/api/users/:id', async(ctx)=> { | |
ctx.body = 'Get - get user ' + ctx.params.id; | |
}) | |
.post('/api/users', async(ctx)=> { | |
ctx.body = 'Post - create user'; | |
}) | |
.pust('/api/users/:id', async(ctx)=> { | |
ctx.body = 'Put - update user ' + ctx.params.id; | |
}) | |
.delete('/api/users/:id', async(ctx)=> { | |
ctx.body = 'Delete - delete user ' + ctx.params.id; | |
}) | |
// all other routes | |
app.use(async()=> { | |
this.body = 'Hello world, this is landing page'; | |
}); | |
let server = app.listen(3000, ()=> { | |
console.log('Koa is listening to http://localhost:3000'); | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment