Nous avons déjà développé des API REST dans SpringBoot.
Nous voulons maintenant ajouter du texte (version de l'API par exemple / v1 / ) à tous les @RequestMapping .
Y a-t-il un moyen de faire cela sauf d'ajouter / v1 / à chaque @RequestMapping
exemple: RequestMapping actuel / employess et / cars / 1 / driver
Besoin de construire comme ceci / v1 / employess et /v1/cars/1/driver
3 Réponses :
Vous pouvez le faire d'au moins deux façons.
Option 1: étendez AbstractAnnotationConfigDispatcherServletInitializer comme ci-dessous:
@RestController
@RequestMapping("/v1")
public class Controller {
}
Option 2: ajoutez un mappage de requête au niveau de la classe sur les contrôleurs dont vous souhaitez ajouter la version comme ci-dessous
public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected String[] getServletMappings() {
return new String[] { "/v1/*" };
}
}
Je choisirais l'option 1.
Vous pouvez utiliser cette propriété dans votre fichier application.properties :
@RestController
@RequestMapping(value = "${rest.api.version}")
public class MyAbstractController {
}
ou vous pouvez avoir une classe de contrôleur de base et l'étendre avec toutes vos classes de contrôleur
server.servlet.contextPath=/v1
et stockez rest.api.version dans votre fichier application.properties .
Si vous souhaitez ajouter à chaque requête "/ v1", vous pouvez le faire en utilisant l'annotation @RequestMapping au niveau de la classe, de cette manière tous les appels entrants (qui contient "/ v1") arriveront votre contrôleur
@RestController
@RequestMapping("/v1")
public class YourController {
}
J'ai demandé All Controller, pas seulement un contrôleur!
J'ai trouvé la solution: mhdevelopment.wordpress.com/2016/10 / 03 /…
duplication possible de cette question: stackoverflow.com/questions/34801351/...
Pourriez-vous ajouter un exemple de la façon dont vos mappages actuels sont définis?
@Arnaud a mis à jour la question
@MehrajMalik Avez-vous eu l'occasion de tester mes solutions?