Wersjonowanie API w katalogach

0

W jaki sposób mogę uzyskać poniższy efekt ale w springu?
Chodzi o to, że chciałbym stworzyć api o strukturze:
localhost:2137/v1/auth/login

ale też dla przykładu
localhost:2137/v2/auth/login

stąd to rozdzielenie w strukturze katalogów (każde zejście głębiej to nowy katalog).
W jaki sposób najlepiej jest to uzyskać, mógłbym prosić o rzucenie jakimiś przykładami?
Czy jest to dobry sposób czy istnieją jakieś inne zamienniki?

to niżej to express.js

const { Router } = require('express');
const apiV1 = require('./apiV1/apiV1Routes.js');

const router = Router();

router.use('/v1', apiV1);

module.exports = router;
const { Router } = require('express');
const employeesRoutes = require('./employeesRoutes');
const detailsRoutes = require('./detailsRoutes');
const jobsRoutes = require('./jobsRoutes');
const organizationsRoutes = require('./organizationsRoutes');
const authRoutes = require('./authRoutes');

const router = Router();


router.use('/auth', authRoutes);

router.use('/employees/:id/details', detailsRoutes);

router.use('/employees', employeesRoutes);

router.use('/jobs', jobsRoutes);

router.use('/organizations', organizationsRoutes);

module.exports = router;
const { Router } = require('express');

const authController  = require('../../controllers/apiV1/apiV1Auth');


const router = Router();


router.post('/login', authController.login);
router.get('/logout', authController.logout);


module.exports = router;
1

W springu, to będzie śmiesznie.
Możesz:

  • mieć mieć obsługę tych dodatkowych endpointów w tym samym kontroleerze
  • mieć osobny kontroler na każdą wersję API
  • ustawić sobie /{version}/auth/login i mniej lub bardziej ifować w zależności od wersji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1