I have:
let user = require('./model/user/user.route');
let companyType = require('./model/masterCollections/companyType/companyType.route');
let jobPosting = require('./model/jobPosting/jobPosting.route');
let login = require('./model/login/login.local');
module.exports = function(app) {
app.use('/user', user);
app.use('/companyType', companyType);
app.use('/login', login.local);
app.use('/jobs', jobPosting);
}
I can added manually prefix to each one like this
let prefix = '/api/v1'
app.use(prefix + '/user', user);
app.use(prefix + '/companyType', companyType);
app.use(prefix + '/login', login.local);
app.use(prefix + '/jobs', jobPosting);
But it seems that it is not a good for best practices. So my question is what is the best way to add versioning.
Thanks in advance.
It is recommended to manage the route file by version.
If require('folder') called, index.js in folder.
I'll let you know the page that I have arranged. The full code for that description is included in this link:
app.js
// ... skip ...
const apiv1 = require('./route/APIV1'); //./routes/APIV1/index.js
const apiv2 = require('./route/APIV2'); //./routes/APIV2/index.js
app.use('/APIV1', apiv1);
app.use('/APIV2', apiv2);
// ... skip ...
./routes/APIV1/index.js
const express = require('express');
const router = express.Router();
const user = require('./user.js');
const jobs = require('./jobs.js');
router.use('/user', user);
router.use('/jobs', jobs);
module.exports = router;
./routes/APIV1/user.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV1/user : get');
})
router.post('/', function(req, res){
res.end('/APIV1/user : post');
})
module.exports = router;
./routes/APIV1/jobs.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV1/jobs : get');
})
router.post('/', function(req, res){
res.end('/APIV1/jobs : post');
})
module.exports = router;
./routes/APIV2/index.js
const express = require('express');
const router = express.Router();
const user = require('./user.js');
const jobs = require('./jobs.js');
router.use('/user', user);
router.use('/jobs', jobs);
module.exports = router;
./routes/APIV2/user.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV2/user : get');
})
router.post('/', function(req, res){
res.end('/APIV2/user : post');
})
module.exports = router;
./routes/APIV2/jobs.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res){
res.end('/APIV2/jobs : get');
})
router.post('/', function(req, res){
res.end('/APIV2/jobs : post');
})
module.exports = router;
If this using a way, you can simple management your API
Happy coding~
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With