Maison > Java > javaDidacticiel > le corps du texte

Le projet SpringBoot intègre Swagger et swagger-bootstrap-ui et quelles sont les annotations communes ?

WBOY
Libérer: 2023-05-24 12:22:13
avant
1946 Les gens l'ont consulté

    1. Introduction

    Avec la popularité de la séparation front-end et back-end dans les projets Internet, le front-end et le back-end sont développés par du personnel différent, et les coûts de communication du projet augmentent également.

    Principalement reflété dans la communication des interfaces WebAPI, Swagger2 a vu le jour. Il peut générer dynamiquement des documents d'interface Api, réduire les coûts de communication et promouvoir un développement de projet efficace.

    Ce qui suit traite de l'intégration de Swagger2 et swagger-bootstrap-ui sur SpringBoot

    2 L'intégration du projet SpringBoot avec swagger

    1 Introduire les dépendances

            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.8.0</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.8.0</version>
            </dependency>
    Copier après la connexion

    2 Écrire les fichiers de configuration

    Peut être comparé et modifié en conséquence

    @Configuration
    @EnableSwagger2
    @EnableSwaggerBootstrapUI
    @Profile({"dev","test"})
    public class Swagger2Config {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                    .groupName("") //指定分组,对应(/v2/api-docs?group=)
                    .pathMapping("") //base地址,最终会拼接Controller中的地址
                    .apiInfo(apiInfo())
                    .select()
                    //为当前包路径
    				// .apis(RequestHandlerSelectors.any())
                    .apis(RequestHandlerSelectors.basePackage("com.riskeys.sd.custom"))
                    .paths(PathSelectors.any())
                    .build();
        }
    
        //构建 api文档的详细信息函数
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    //页面标题
                    .title("XXX API对接文档")
                    .description("XX API对接文档") //描述
                    //创建人
                    .contact(new Contact("yuhei001", "https://blog.csdn.net/Yuhei0", "18616591658@163.com"))
                    //版本号
                    .version("1.0")
                    //描述
                    .description("API 描述")
                    .build();
        }
    }
    Copier après la connexion
    .

    3 . Démarrez la page d'accès

    http://127.0.0.1:10086/swagger-ui.html

    Le projet SpringBoot intègre Swagger et swagger-bootstrap-ui et quelles sont les annotations communes ?

    3. Le projet SpringBoot intègre swagger-bootstrap-ui

    Effectuez les opérations suivantes en fonction de l'étape 2

    .

    1 .Introduire les dépendances

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>swagger-bootstrap-ui</artifactId>
                <version>1.9.6</version>
            </dependency>
    Copier après la connexion

    2. Configurer les règles de traitement des ressources

    Si elles ne sont pas configurées, il est possible de signaler l'erreur .9996 lors de l'accès.

    Implémentez l'interface WebMvcConfigurer ou WebMvcConfigurationSupport (ancienne version de SpringBoot), implémentez la méthode addResourceHandlers et ajoutez le code ci-dessous.

    @Configuration
    public class AppWebConfig extends WebMvcConfigurationSupport{
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            // 解决 doc.html 404 报错
            registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
        }
    
    }
    Copier après la connexion

    ou

    @Configuration
    public class AppWebConfig extends WebMvcConfigurationSupport{
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");
            // 解决 doc.html 404 报错
            registry.addResourceHandler("doc.html").addResourceLocations("classpath*:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath*:/META-INF/resources/webjars/");
        }
    }
    Copier après la connexion

    De plus, vous pouvez également implémenter la réécriture sur la classe de démarrage

    @SpringBootApplication
    public class XXXApplication  implements WebMvcConfigurer{
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
            registry.addResourceHandler("doc.html").addResourceLocations("classpath*:/META-INF/resources/");
            registry.addResourceHandler("/webjars/**").addResourceLocations("classpath*:/META-INF/resources/webjars/");
        }
    }
    Copier après la connexion

    3 Démarrez la page d'accès

    Visitez http://127.0.0.1:10086/doc.html, par rapport à swagger-ui. . En termes de HTML, ce document est plus propre.

    Le projet SpringBoot intègre Swagger et swagger-bootstrap-ui et quelles sont les annotations communes ?

    4. Introduction aux annotations communes de Swagger

    swagger génère des documents d'interface via des annotations, y compris les noms d'interface, les méthodes de requête, les paramètres, les informations de retour, etc.

    1. Annotations swagger associées dans Swagger2Config

    1.1 @EnableSwagger2 Activer Swagger

    Agit sur la classe de configuration ou la classe de démarrage

    1.2 @EnableSwaggerBootstrapUI Activer les améliorations de SwaggerBootstrapUi

    Act s sur la classe de configuration ou la classe de démarrage, si not Pour utiliser la fonction améliorée, il n'est pas nécessaire de l'activer.

    2. Annotations swagger associées dans le contrôleur

    2.1 @Api : modifiez la classe entière et décrivez le rôle du contrôleur

    la valeur et les balises sont des instructions, les balises peuvent être utilisées à la place de la valeur

    @Api(value = "保险公司列表查询", tags = {"保险公司列表查询"})
    Copier après la connexion

    2.2 @ApiOperation( ) est utilisé Méthode ; représente le fonctionnement d'une requête http

    @ApiOperation(value = "信息员保存(注册)/更新", tags = {"信息員保存"}, notes = "messenger desc")
    Copier après la connexion

    2.3 @ApiParam Utilisé pour les méthodes, les paramètres, les descriptions de champs ; représente l'ajout de métadonnées aux paramètres (description ou si elle est requise, etc.)

    S'applique à un seul paramètre

    @ApiParam(name="sdMessengerInfo",value="参数描述",required=true)
    Copier après la connexion

    2.4 Annotations des paramètres de requête, qui peuvent être combinées

    • @ApiImplicitParams Utilisé pour les méthodes contenant plusieurs @ApiImplicitParams

    • @ApiImplicitParam Utilisé pour les méthodes, représentant une requête individuelle paramètres

    Convient à plusieurs paramètres décrits

    Exemple :

    // 组合使用
    @ApiImplicitParams ({
        @ApiImplicitParam(name = "id", value = "参数中文描述", required = true)
    })
    // 单独使用
    @ApiImplicitParam(paramType="query", name="id", dataType="String", required=true, value="参数描述")
    Copier après la connexion

    Notez que lorsque @ApiParam et @ApiImplicitParam existent en même temps, la description de @ApiImplicitParam prévaudra.

    2.5 @ApiIgnore() Utilisé sur des classes ou des méthodes, il n'a pas besoin d'être affiché sur la page par swagger, et est rarement utilisé.

    2.6 Configuration de la réponse

    • @ApiResponses

    • @ApiResponse

    // 单独配置
    @ApiResponse(code = 400, message = "Invalid user supplied")
    // 组合使用
    @ApiResponses({ @ApiResponse(code = 400, message = "Invalid Order") })
    Copier après la connexion

    2.7 @ResponseHeader Paramètres d'en-tête de réponse

    @ResponseHeader(name="head1",description="response head conf")
    Copier après la connexion

    3. Annotations fanfaronnes associées dans Model

    3.1 @ApiModel Utilisé pour les classes ; il représente une description de la classe et est utilisé pour recevoir des paramètres à l'aide de classes d'entités.

    @ApiModel(value = "demo", description = "对象描述")
    Copier après la connexion

    En général, la valeur et la description peuvent être omises

    3.2 @ApiModelProperty Utilisé pour les méthodes et les champs ; indique la description des propriétés du modèle ou des modifications apportées aux opérations de données

    @ApiModelProperty(value = "用户id",name = "openid2",dataType = "String", required = true, hidden = true)
    Copier après la connexion
    • valeur – champ Description value–字段说明

    • name–重写属性名字

    • dataType–重写属性类型

    • required–是否必填

    • example–举例说明

    • hidden

    name–Réécrire le nom de l'attribut

    🎜🎜dataType–Réécrire le type d'attribut🎜🎜🎜🎜obligatoire&ndash ; obligatoire ? 🎜🎜🎜🎜exemple–Exemple 🎜🎜🎜🎜caché–Masquer🎜🎜🎜🎜 Généralement, seules les valeurs et les valeurs obligatoires sont marquées. 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Étiquettes associées:
    source:yisu.com
    Déclaration de ce site Web
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
    Tutoriels populaires
    Plus>
    Derniers téléchargements
    Plus>
    effets Web
    Code source du site Web
    Matériel du site Web
    Modèle frontal