zoukankan      html  css  js  c++  java
  • swagger配置

    1 pom.xml中配置引入依赖

    <!--引入swagger-->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.9.2</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.9.2</version>
    </dependency>
    

    2 创建配置类Swagger2Config

    通过api函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息

    /**
    * Swagger2配置类
    * 在与spring boot集成时,放在与Application.java同级的目录下。
    * 通过@Configuration注解,让Spring来加载该类配置。
    * 再通过@EnableSwagger2注解来启用Swagger2。
    */
    @EnableSwagger2
    @Configuration
    public class Swagger2Config {
        @Bean
        public Docket api() {
        	/** SWAGGER_2版本  	*/
            return new Docket(DocumentationType.SWAGGER_2) 
                    .apiInfo(apiInfo())
                    /** 选择那些路径和api会生成document  	*/
                    .select()
                    /** com.example.springstudy.controller 此包下的所有api 	*/
                    .apis(RequestHandlerSelectors.basePackage("com.example.springstudy.controller"))
                    /** 对所有路径进行监控  	*/
                    .paths(PathSelectors.any()) 
                    .build();
        }
    
        private ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("API说明")
                    .description("描述")
                    .termsOfServiceUrl("http://localhost:8080/api/")
                    .version("1.0")
                    .build();
        }
    }
    

    3.对接口和实体类添加注解,生成doc

    注解 说明
    @Api 使用在Controller层Api类上,主要属性有tags(标签)、hidden(是否隐藏)、value、authorizations等,用于说明类的作用
    @ApiOperation 给Controller层api增加方法说明,主要属性有value(方法描述)、notes(提示内容)、hidden(是否隐藏)、
    httpMethod、ignoreJsonView、response、responseHeaders等等,某些属性注解可自动识别,无需配置。
    @ApiModel 用在实体类上,主要属性有description(描述)、parent(父类)、subTypes、value(对象名)、discriminator等。
    @ApiImplicitParams 对Controller层的方法参数进行说明,包含多个 @ApiImplicitParam,只有一个属性value
    @ApiImplicitParam 对Controller层的方法参数进行说明,主要属性有name(参数名称)、value(参数说明)、required(是否必需)、
    example–举例说明、dataType(数据类型)、paramType(参数类型)、dataTypeClass、defaultValue、readOnly等
    @ApiModel 用在实体类上,主要属性有description(描述)、parent(父类)、subTypes、value、discriminator等
    @ApiModelProperty 用在实体类属性上,主要属性有access、accessMode、allowableValues、allowEmptyValue(是否允许为空)、
    dataType(数据类型)、example(示例)、hidden(是否隐藏)、name(名称)、notes、required(是否必需)、value(说明)等。

    4在浏览器中输入 http://localhost:8080/swagger-ui.html


    在接口上追加swagger注解
    entity

    package com.example.demo.entity;
    
    import com.baomidou.mybatisplus.annotation.*;
    import lombok.*;
    
    import java.util.Date;
    @Getter
    @Data
    public class User {
        @TableId(type=IdType.AUTO)
        private Long id;
        private String name;
        private int age;
        private String email;
        //自段添加填充
        @TableField(fill= FieldFill.INSERT)
        private Date createTime;
        @TableField(fill=FieldFill.INSERT_UPDATE)
        private Date updateTime;
        @Version //乐观锁version注解
        private int version;
        @TableLogic
        private int deleted;
    }
    
    

    mapper接口

    package com.example.demo.mapper;
    
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import com.example.demo.entity.User;
    import org.apache.ibatis.annotations.Mapper;
    import org.springframework.stereotype.Repository;
    
    import java.util.List;
    
    //在对应的mapper上面继承基本的类BaseMapper
    //代表持久层
    @Repository
    public interface UserMapper extends BaseMapper<User> {
        public List<User> selectUser(Long id);
    }
    
    

    mapper的xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.example.demo.mapper.UserMapper">
        <select id="selectUser" resultType="com.example.demo.entity.User">
            select * from user where id =#{id}
        </select>
    </mapper>
    

    service接口层

    package com.example.demo.service.impl;
    
    import com.baomidou.mybatisplus.extension.service.IService;
    import com.example.demo.entity.User;
    
    import java.util.List;
    
    public interface UserServiceImpl extends IService<User> {
         List<User> selectUser(Long id);
    }
    
    

    service实现层

    package com.example.demo.service;
    
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import com.example.demo.entity.User;
    import com.example.demo.mapper.UserMapper;
    import com.example.demo.service.impl.UserServiceImpl;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.ArrayList;
    import java.util.List;
    
    @Service
    public class UserService extends ServiceImpl<UserMapper,User> implements UserServiceImpl {
        @Autowired
        private UserMapper userMapper;
    
        @Override
        public List<User> selectUser(Long id){
            User user = userMapper.selectById(id);
            List<User> list = new ArrayList<>();
            list.add(user);
            return list;
        }
    }
    
    

    controller层

    package com.example.demo.controller;
    
    import com.example.demo.entity.User;
    import com.example.demo.service.UserService;
    import com.example.demo.service.impl.UserServiceImpl;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import lombok.AllArgsConstructor;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import javax.annotation.Resource;
    import java.util.List;
    
    @RestController
    @AllArgsConstructor
    @Api(value = "用户管理",tags = "用户管理")
    @RequestMapping("/api")
    public class controller {
        @Resource
        UserService userService;
        @ApiOperation(value="用户查询",notes = "用户查询")
        @GetMapping("/user")
        public List<User> selectUser(){
            return userService.selectUser(1366738104190881793L);
        }
    }
    
    

    所有博客均为自己学习的笔记。如有错误敬请理解。
  • 相关阅读:
    Spring Boot----整合SpringCloud
    python apscheduler学习
    Java8 Lambda
    Java Json操作
    python 环境相关
    大数据 Hadoop 单机版安装
    大数据 CDH 6.2 安装
    Java8 时间API
    python 字符串方法
    《JavaScript高级程序设计》笔记——第一章到第三章
  • 原文地址:https://www.cnblogs.com/tangtang-benben/p/14628272.html
Copyright © 2011-2022 走看看