2 votes

Swagger et la découverte automatique des ressources

J'utilise Swagger pour Jersey2 conformément à ce tutoriel : https://github.com/swagger-api/swagger-core/wiki/Swagger-Core-Jersey-2.X-Project-Setup-1.5 avec une classe d'application personnalisée. Pour que Swagger s'initialise correctement, une surcharge de l'option getClasses() doit être mis en œuvre.

Malheureusement, cela signifie également que je dois ajouter manuellement chaque classe de mes ressources au HashSet. Si je ne le fais pas, tous les points d'accès renvoient 404. Mais lorsque je n'utilise pas Swagger, je n'ai pas besoin de surcharger la méthode et toutes mes ressources REST sont automatiquement découvertes par les annotations JAX-RS.

Existe-t-il un moyen d'inscrire des classes Swagger tout en conservant la découverte automatique pour mes ressources personnelles ?

2voto

peeskillet Points 32287

Utilisez un ResourceConfig qui s'étend Application . ResourceConfig a un packages pour enregistrer toutes les classes par analyse des paquets, et vous pouvez enregistrer les composants Swagger en appelant la méthode register sur le ResourceConfig . Vous pouvez faire tout cela dans le constructeur.

@ApplicationPath("/api")
public class AppConfig extends ResourceConfig {
    public AppConfig() {
        packages("the.packages.to.scan");
        register(SwaggerComponent.class);
    }
}

Voir aussi :

  • Swagger surcharge les Path-Annotations pour une autre option. Elle utilise les API standard de JAX-RS. Mais voyez aussi le lien sur le balayage du classpath et pourquoi vous ne devriez pas l'utiliser. L'analyse des paquets est meilleure et plus rapide.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X