2017-10-17 4 views
0

J'ai:express.js: La meilleure façon d'ajouter le préfixe routes versioning

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); 
} 

J'ajoutai préfixer manuellement à chacun comme celui-ci

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); 

Mais il semble que ce n'est pas un bon pour le meilleur les pratiques. Donc ma question est quelle est la meilleure façon d'ajouter le versioning.

Merci d'avance.

Répondre

2

Il est recommandé de gérer le fichier de route par version.

Si require ('folder') est appelé, index.js dans le dossier.

Je vais vous faire savoir la page que j'ai arrangée. 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 ... 
  • APIV1

./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; 
  • APIV2

./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; 

Si cela en utilisant une certaine manière, vous pouvez simplement la gestion de votre API

Bonne codage ~