素材巴巴 > 程序开发 >

【java_wxid项目】【第十二章】【Swagger集成】

程序开发 2023-09-07 12:14:30

主项目链接:https://gitee.com/java_wxid/java_wxid
项目架构及博文总结:

项目模块:
前期规划,实现部分

java_wxid   
 ├── demo                                                            // 演示模块
 │     └── 模块名称:apache-mybatis-demo模块                            //Apache Mybatis集成(已实现并有博文总结)
 │     └── 模块名称:apache-shardingsphere-demo模块                     //Apache ShardingSphere集成(已实现并有博文总结)
 │     └── 模块名称:design-demo模块                                    //设计模式实战落地(已实现并有博文总结)
 │     └── 模块名称:elasticsearch-demo模块                             //ElasticSearch集成(已实现并有博文总结)
 │     └── 模块名称:mongodb-demo模块                                   //MongoDB集成(已实现并有博文总结)
 │     └── 模块名称:redis-demo模块                                     //Redis集成(已实现并有博文总结)
 │     └── 模块名称:spring-boot-demo模块                               //Spring Boot快速构建应用(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-alibaba-nacos-demo模块                //Spring Cloud Alibaba Nacos集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-alibaba-seata-demo模块                //Spring Cloud Alibaba Seata集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-alibaba-sentinel-demo模块             //Spring Cloud Alibaba Sentinel集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-gateway-demo模块                      //Spring Cloud Gateway集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-hystrix-demo模块                      //Spring Cloud Hystrix集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-open-feign-demo模块                   //Spring Cloud Open Feign集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-ribbon-demo模块                       //Spring Cloud Ribbon集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-security-oauth2-demo模块              //Spring Cloud Security Oauth2集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-security-oauth2-sso-client-demo模块   //Spring Cloud Security Oauth2集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-skywalking-demo模块                   //Spring Cloud Skywalking集成(已实现并有博文总结)
 │     └── 模块名称:spring-cloud-stream-demo模块                       //Spring Cloud Stream集成(已实现并有博文总结)
 │     └── 模块名称:swagger-demo模块                                   //springfox-swagger2集成(已实现并有博文总结)
 │     └── 模块名称:xxl-job模块                                        //xxl-job集成(已实现并有博文总结)
 │     └── 模块名称:apache-spark-demo模块                              //Apache Spark集成
 │     └── 模块名称:etl-hdfs-hive-hbase-demo模块                       //ETL、HDFS、Hive、Hbase集成
 │     └── 模块名称:ddd-mode-demo模块                                  //DDD领域设计
 │     └── 模块名称:netty-demo模块                                     //Netty集成
 │     └── 模块名称:vue-demo模块                                       //前端vue集成
 ├── document                                                        // 文档
 │     └── JavaKnowledgeDocument                                     //java知识点
 │           └── java基础知识点.md                     
 │           └── mq知识点.md
 │           └── mysql知识点.md
 │           └── redis知识点.md
 │           └── springcould知识点.md
 │           └── spring知识点.md
 │     └── FounderDocument                                           //创始人
 │           └── 创始人.md
 

系列文章:快速集成各种微服务相关的技术,帮助大家可以快速集成到自己的项目中,节约开发时间。
提示:系列文章还未全部完成,后续的文章,会慢慢补充进去的。

文章目录

  • 校验Swagger是否正常工作
  • 创建swagger-demo项目

    项目代码:https://gitee.com/java_wxid/java_wxid/tree/master/demo/swagger-demo
    项目结构如下(示例):
    在这里插入图片描述

    修改pom.xml

    代码如下(示例):

    
     4.0.0com.exampleswagger-demo0.0.1-SNAPSHOTswagger-demoDemo project for Spring BootUTF-8UTF-81.82.3.12.RELEASEHoxton.SR122.2.7.RELEASE2.9.2org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtestorg.junit.vintagejunit-vintage-engineorg.springframework.bootspring-boot-starter-webio.springfoxspringfox-swagger2${swagger2.version}io.springfoxspringfox-swagger-ui${swagger2.version}org.springframework.bootspring-boot-devtoolstrueorg.springframework.bootspring-boot-starter-parent${spring.boot.version}pomimportorg.springframework.cloudspring-cloud-dependencies${spring.cloud.version}pomimportcom.alibaba.cloudspring-cloud-alibaba-dependencies${spring.cloud.alibaba.version}pomimportorg.apache.maven.pluginsmaven-compiler-plugin3.8.11.81.8UTF-8org.springframework.bootspring-boot-maven-plugin2.3.7.RELEASEcom.example.swaggerdemo.SwaggerDemoApplicationrepackagerepackage

    创建Swagger2Config

    代码如下(示例):

    package com.example.swaggerdemo.config;import org.springframework.context.annotation.Bean;
     import org.springframework.context.annotation.Configuration;
     import springfox.documentation.builders.ApiInfoBuilder;
     import springfox.documentation.builders.PathSelectors;
     import springfox.documentation.builders.RequestHandlerSelectors;
     import springfox.documentation.service.ApiInfo;
     import springfox.documentation.service.Contact;
     import springfox.documentation.spi.DocumentationType;
     import springfox.documentation.spring.web.plugins.Docket;
     import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** 访问地址:http://localhost:8080/swagger-ui.html*/
     @Configuration
     @EnableSwagger2
     public class Swagger2Config {@Beanpublic Docket createRestApi(){Contact contact = new Contact("java_wxid","","java_wxid@aliyun.com");ApiInfo apiInfo=new ApiInfoBuilder().title("swagger接口").description("案例相关接口描述").version("1.0.0").contact(contact).build();return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo).select().apis(RequestHandlerSelectors.basePackage("com.example.swaggerdemo.controller")).paths(PathSelectors.any()).build();}
     }

    创建UserController

    代码如下(示例):

    package com.example.swaggerdemo.controller;import com.example.swaggerdemo.model.UserInfoVo;
     import io.swagger.annotations.Api;
     import io.swagger.annotations.ApiOperation;
     import io.swagger.annotations.ApiParam;
     import org.springframework.web.bind.annotation.GetMapping;
     import org.springframework.web.bind.annotation.RequestMapping;
     import org.springframework.web.bind.annotation.RestController;@Api("用户管理")
     @RestController
     @RequestMapping("/user")
     public class UserController {@ApiOperation(value="接口说明:获取用户信息",httpMethod="GET",notes="接口发布说明")@GetMapping("/getUserInfo")public UserInfoVo getUserInfo(@ApiParam(required = true, name = "用户id", value = "userId") String userId){UserInfoVo userInfoVo = new UserInfoVo();userInfoVo.setUserId(userId);return userInfoVo;}
     }

    创建UserInfoVo

    代码如下(示例):

    package com.example.swaggerdemo.model;import io.swagger.annotations.ApiModel;
     import io.swagger.annotations.ApiModelProperty;@ApiModel(value = "用户信息展示给页面的实体类",description ="用户实体类的注释")
     public class UserInfoVo {@ApiModelProperty(value = "用户Id")private String userId;public String getUserId() {return userId;}public void setUserId(String userId) {this.userId = userId;}
     }

    校验Swagger是否正常工作

    启动项目

    如下图(示例):
    在这里插入图片描述

    访问接口http://localhost:8080/swagger-ui.html

    在这里插入图片描述


    标签:

    上一篇: 机器人中的坐标变换 下一篇:
    素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。