SpringBoot和Swgger的整合

Swagger的配置

SpringBoot与Swagger的版本不兼容的问题

SpringBoot的版本与Swagger版本不兼容导致出现问题:IDEA报错之Failed to start bean ‘documentationPluginsBootstrapper,配置文件加以下一行:

#兼容Swagger的版本
spring.mvc.pathmatch.matching-strategy=ant_path_matcher

依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.0</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-spring-web</artifactId>
    <version>2.6.0</version>
</dependency>

配置类配置Swagger

@Configuration
@EnableSwagger2
public class SwaggerConfig {
   @Bean
   public Docket api(){
       return new Docket(DocumentationType.SWAGGER_2)
               .apiInfo(getApiInfo())
               .select()
               .apis(RequestHandlerSelectors.basePackage("com.xx.controller"))
               .paths(PathSelectors.any())
               .build();
   }

   private ApiInfo getApiInfo(){
       return new ApiInfoBuilder()
               .title("Swagger2....")
               .description("Swagger2")
               .version("1.0")
               .license("Apache 2.0")
               .licenseUrl("http://www.apache.org/licenses/LICENSE-2.0")
               .build();
   }
}

访问地址:http://localhost:端口号/swagger-ui.html#

控制层案例:

import com.zhiyou100.dao.StudentDao;
import com.zhiyou100.entity.ResponseVo;
import com.zhiyou100.entity.Student;
import com.zhiyou100.exception.StudentCrudException;
import com.zhiyou100.service.StudentService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import java.util.Date;
import java.util.List;


@RestController
@RequestMapping("/student")
@Api(tags = "学生管理")
public class StudentAction {
    @Autowired
    private StudentService studentService;

    @GetMapping("/getAll.action")
    @ApiOperation("获取所有")
    public ResponseVo<List<Student>> getAll(){
        return new ResponseVo<>(200,null,studentService.getAll());
    }

    @GetMapping("/getOne/{sid}.action")
    @ApiOperation("获取一个")
    @ApiImplicitParam(name = "sid",value = "学号",dataTypeClass = int.class)
    public ResponseVo<Student> getOne(@PathVariable("sid") int sid){
        return new ResponseVo<>(200,null,studentService.getOneById(sid));
    }
    @PutMapping("/updateOne.action")
    @ApiOperation("修改一个")
    @ApiImplicitParam(name = "student",value = "要修改的学生",dataTypeClass = Student.class)
    public ResponseVo<String> updateOne(@RequestBody  Student student){
        int hang=studentService.updateOne(student);
        return new ResponseVo<>(200,null,"修改("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
    }
    @PostMapping("/addOne.action")
    @ApiOperation("添加一个")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "sname", value = "名字", dataTypeClass = String.class,required = true),
            @ApiImplicitParam(name = "sex", value = "性别", dataTypeClass = String.class),
            @ApiImplicitParam(name = "sage", value = "年龄", dataTypeClass = int.class),
            @ApiImplicitParam(name = "score", value = "分数", dataTypeClass = float.class),
            @ApiImplicitParam(name = "sdy", value = "政治面貌", dataTypeClass = boolean.class),
            @ApiImplicitParam(name = "sbirthday", value = "生日", dataTypeClass = Date.class)
    })
    public ResponseVo<String> addOne(Student student){
        int hang=studentService.addOne(student);
        return new ResponseVo<>(200,null,"添加("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
    }

    @ApiOperation("删除一个")
    @ApiImplicitParam(name = "sid",value = "学号",dataTypeClass = int.class)
    @DeleteMapping("/deleteOne/{sid}.action")
    public ResponseVo<String> deleteOne(@PathVariable("sid") int sid){
        Student student=studentService.getOneById(sid);
        int hang=studentService.deleteOne(sid);
        return new ResponseVo<>(200,null,"删除("+student.getSname()+")"+(hang>0?"成功!":"失败!"));
    }

}

实体类案例:

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
@SuppressWarnings(value="all")
@Table(name="student")
@ApiModel("学生")
public class Student   implements Serializable {
    @Id
    @Column(name="sid")
    @GeneratedValue(strategy = GenerationType.IDENTITY) //主键生成策略:数据库自增
    @ApiModelProperty(value="学号")
    private Integer sid;

    @Column(name="sname")
    @ApiModelProperty(value="名字")
    private String sname;

    @Column(name="sex")
    @ApiModelProperty(value="性别")
    private String sex;

    @Column(name="sage")
    @ApiModelProperty(value="年龄")
    private Integer sage;

    @Column(name="score")
    @ApiModelProperty(value="成绩")
    private Float score;

    @Column(name="sdy")
    @ApiModelProperty(value="政治面貌")
    private Boolean sdy;

    @Column(name="sbirthday")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty(value="生日")
    private Date sbirthday;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值