zoukankan      html  css  js  c++  java
  • SpringMVC整合Swagger

    1.添加Swagger依赖jar包

            <dependency>

               <groupId>io.swagger</groupId>

               <artifactId>swagger-annotations</artifactId>

               <version>${swagger.version}</version>

           </dependency>

           <dependency>

               <groupId>io.springfox</groupId>

               <artifactId>springfox-swagger2</artifactId>

               <version>${springfox.version}</version>

           </dependency>

           <dependency>

               <groupId>io.springfox</groupId>

               <artifactId>springfox-swagger-ui</artifactId>

               <version>${springfox.version}</version>

           </dependency>

           <dependency>

               <groupId>com.fasterxml.jackson.core</groupId>

               <artifactId>jackson-annotations</artifactId>

               <version>${jackson.version}</version>

           </dependency>

           <dependency>

               <groupId>com.fasterxml.jackson.core</groupId>

               <artifactId>jackson-databind</artifactId>

               <version>${jackson.version}</version>

           </dependency>

           <dependency>

               <groupId>com.fasterxml.jackson.core</groupId>

               <artifactId>jackson-core</artifactId>

               <version>${jackson.version}</version>

           </dependency>

           <swagger.version>1.5.10</swagger.version>

           <springfox.version>2.6.1</springfox.version>

           <jackson.version>2.8.8</jackson.version>

    2.引入Swagger配置类

    import org.springframework.context.annotation.Bean;

    import org.springframework.context.annotation.Configuration;

    import org.springframework.web.servlet.config.annotation.EnableWebMvc;

    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

     

    import springfox.documentation.builders.ApiInfoBuilder;

    import springfox.documentation.builders.PathSelectors;

    import springfox.documentation.builders.RequestHandlerSelectors;

    import springfox.documentation.service.ApiInfo;

    import springfox.documentation.spi.DocumentationType;

    import springfox.documentation.spring.web.plugins.Docket;

    import springfox.documentation.swagger2.annotations.EnableSwagger2;

     

    @Configuration

    @EnableWebMvc

    @EnableSwagger2

    public class SwaggerConfig extends WebMvcConfigurerAdapter {

        @Bean

        public Docket api() {

           return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())

                  .paths(PathSelectors.any()).build().apiInfo(apiInfo());

        }

     

        private ApiInfo apiInfo() {

           ApiInfo apiInfo = new ApiInfoBuilder().title("Api Documentation").description("Api Documentation")

                  .version("1.0").build();

           return apiInfo;

        }

    }

    3.将SwaggerConfig注入到spring容器

    <bean id="swagger2Config" class="com.ocj.gtapi.common.adapter.SwaggerConfig" />

    4.静态资源路径映射

        <mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />

        <mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />

    5.Controller添加Swagger注解

    import javax.annotation.Resource;

     

    import org.springframework.web.bind.annotation.PathVariable;

    import org.springframework.web.bind.annotation.RequestBody;

    import org.springframework.web.bind.annotation.RequestMapping;

    import org.springframework.web.bind.annotation.RequestMethod;

    import org.springframework.web.bind.annotation.RestController;

     

    import com.ocj.gtapi.web.demo1.model.User;

    import com.ocj.gtapi.web.demo1.service.DemoService;

     

    import io.swagger.annotations.Api;

    import io.swagger.annotations.ApiImplicitParam;

    import io.swagger.annotations.ApiImplicitParams;

    import io.swagger.annotations.ApiOperation;

    import io.swagger.annotations.ApiParam;

     

    @Api(value = "用户", description = "用户相关接口")

    @RestController

    @RequestMapping("/User")

    public class DemoController {

     

        @Resource

        DemoService demoService;

     

        @ApiOperation(value = "新增用户", notes = "根据User对象创建用户", response = Integer.class)

        @ApiImplicitParam(name = "user", value = "用户实体对象", required = true, dataType = "User", paramType="body")

        @RequestMapping(value = "", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")

        public Integer insertUser(@RequestBody User user) {

           return demoService.insertUserByUser(user);

        }

     

        @ApiOperation(value = "删除用户", notes = "通过ID删除用户", response = Integer.class)

        @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType="path")

        @RequestMapping(value = "/{id}", method = RequestMethod.DELETE, produces = "text/html;charset=UTF-8")

        public Integer deleteUser( @PathVariable Integer id) {

           return demoService.deleteUserById(id);

        }

     

        @ApiOperation(value = "更新用户", notes = "通过ID更新用户", response = Integer.class)

        @ApiImplicitParams({

            @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType="path"),

            @ApiImplicitParam(name = "user", value = "用户实体对象", required = true, dataType = "User", paramType="body")

        })

        @RequestMapping(value = "/{id}", method = RequestMethod.PUT, produces = "application/json;charset=UTF-8")

        public Integer updateUser(@PathVariable Integer id, @RequestBody User user) {

           return demoService.updateUserById(id, user);

        }

     

        @ApiOperation(value = "查询用户", notes = "通过ID查询用户", response = User.class)

        @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType="path")

        @RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = "text/html;charset=UTF-8")

        public User selectUser(@PathVariable Integer id) {

           return demoService.selectUserById(id);

        }

     

    }

    6.访问接口页面

    http://localhost:8080/swagger-ui.html

    7.Swagger汉化

    找到/META-INF/resources/swagger-ui.html文件,增加下面配置

    <!--国际化操作:选择中文版 -->

    <script src='webjars/springfox-swagger-ui/lang/translator.js' type='text/javascript'></script>

    <script src='webjars/springfox-swagger-ui/lang/zh-cn.js' type='text/javascript'></script>

    8.加强版汉化

    找到/META-INF/resources/webjars/springfox-swagger-ui/lang/zh-cn.js文件,根据自己喜好设置

    'use strict'; /* jshint quotmark: double */ window.SwaggerTranslator.learn({ "Warning: Deprecated":"警告:已过时", "Implementation Notes":"实现备注", "Response Class":"响应类", "Status":"状态", "Parameters":"参数", "Parameter":"参数", "Value":"值", "Description":"描述", "Parameter Type":"参数类型", "Data Type":"数据类型", "Response Messages":"响应消息", "HTTP Status Code":"HTTP状态码", "Reason":"原因", "Response Model":"响应模型", "Request URL":"请求URL", "Response Body":"响应体", "Response Code":"响应码", "Response Headers":"响应头", "Hide Response":"隐藏响应", "Headers":"头", "Try it out!":"试一下!", "Show/Hide":"显示/隐藏", "List Operations":"显示操作", "Expand Operations":"展开操作", "Raw":"原始", "can't parse JSON. Raw result":"无法解析JSON. 原始结果", "Example Value":"示例", "Click to set as parameter value":"点击设置参数", "Model Schema":"模型架构", "Model":"模型", "apply":"应用", "Username":"用户名", "Password":"密码", "Terms of service":"服务条款", "Created by":"创建者", "See more at":"查看更多:", "Contact the developer":"联系开发者", "api version":"api版本", "Response Content Type":"响应Content Type", "Parameter content type:":"参数类型:", "fetching resource":"正在获取资源", "fetching resource list":"正在获取资源列表", "Explore":"浏览", "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis", "Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。", "Please specify the protocol for":"请指定协议:", "Can't read swagger JSON from":"无法读取swagger JSON于", "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI", "Unable to read api":"无法读取api", "from path":"从路径", "server returned":"服务器返回" });

  • 相关阅读:
    particcles.js in 安卓WebView
    PDF.js 主页样式以及获取流
    Oracle授权A中的表给B
    安卓Response 获取body的正确方式
    android.util.Base64 和 org.apache.commons.codec.binary.Base64
    DAY62-前端入门-javascript(九)jQurey高级
    DAY61-前端入门-javascript(八)jQurey
    DAY60-前端入门-javascript(七)JS动画 | JS盒模型 | DOM | BOM
    DAY59-前端入门-javascript(六)JS事件
    DAY58-前端入门-javascript(五)JS常用类
  • 原文地址:https://www.cnblogs.com/jinloooong/p/9024330.html
Copyright © 2011-2022 走看看