六、springboot整合swagger2,并搭建restful在线文档

1.引入依赖:

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.6.1</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.6.1</version>
</dependency>

2.编写Swagger2实体类

package com.mye.aaa.jiao.entity;
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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration//表明是一个配置类
@EnableSwagger2//开启Swagger2的功能
public class Swagger2 {
    @Bean//注入一个Docket的Bean该Bean包含了apiInfo,即基本API文档的描述信息,以及包扫描的基本包名等信息
    public Docket createRestApi(){
        return  new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.mye.aaa.jiao.web"))
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("swagger建立api文档")
                .description("restful风格,https://my.oschina.net/jhy168")
                .termsOfServiceUrl("https://my.oschina.net/jhy168")
                .version("1.0")
                .build();
    }
}

3.添加UserService类(基于 四、springboot整合JPA   的代码)

package com.mye.aaa.jiao.service;
import com.mye.aaa.jiao.dao.UserDao;
import com.mye.aaa.jiao.entity.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class UserService {
    @Autowired
    private UserDao userDao;
    public User findUserByName(String username) {
        return userDao.findByUsername(username);
    }
    public List<User> findAll(){
        return  userDao.findAll();
    }
    public User saveUser(User user){
        return  userDao.save(user);
    }
    public User findUserById(Long id){
        return  userDao.getOne(id);
    }
    public User updateUser(User user){
        return  userDao.saveAndFlush(user);
    }
    public void deleteUser(Long id){
          userDao.deleteById(id);
    }
}

4.修改Usercontroller

package com.mye.aaa.jiao.web;
import com.mye.aaa.jiao.entity.User;
import com.mye.aaa.jiao.service.UserService;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;
import java.util.List;
@RequestMapping("/user")
@RestController
public class UserController {
    @Autowired
    UserService userService;
    @ApiOperation(value="用户列表",notes="用户列表")
    @RequestMapping(value="",method = RequestMethod.GET)
    public  List<User> getUser002(){
        List<User> users = userService.findAll();
    return users;
    }
    @ApiOperation(value="创建用户",notes="创建用户")
    @RequestMapping(value="",method = RequestMethod.POST)
    public User postUser (@RequestBody User user){
        return  userService.saveUser(user);
    }
    @ApiOperation(value="获取用户信息",notes="根据id获取详情")
    @RequestMapping(value="/id/{id}",method = RequestMethod.GET)
    public User getUser001 (@PathVariable("id") Long id){
        return  userService.findUserById(id);
    }
    @ApiOperation(value="更新信息",notes="根据id更新用户信息")
    @RequestMapping(value="/{id}",method = RequestMethod.PUT)
    public User putUser (@PathVariable Long id,@RequestBody User user){
        User user1 = new User();
        String username = user.getUsername();
        String password = user.getPassword();
        user1.setUsername(username);
        user1.setPassword(password);
        user1.setId(id);
        return  userService.updateUser(user1);
    }
    @ApiOperation(value="删除用户",notes="根据id删除用户")
    @RequestMapping(value="/{id}",method = RequestMethod.DELETE)
    public  String deleteUser(@PathVariable Long id){
      userService.deleteUser(id);
      return "success";
    }
    @ApiIgnore
    @RequestMapping(value="/hi",method = RequestMethod.GET)
    public  String jsonTest(){
        return "你好!";
    }
    @GetMapping("/username/{username}")
    public User getUser(@PathVariable("username") String username) {
        return userService.findUserByName(username);
    }
}

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

如图:

d3f4cba937d8886b870172447768ff77a9e.jpg

附:

@Api:修饰整个类,用于controller类上

@ApiOperation:描述一个接口,用户controller方法上

@ApiParam:单个参数描述

@ApiModel:用来对象接收参数,即返回对象

@ApiModelProperty:对象接收参数时,描述对象的字段

@ApiResponse:Http响应其中的描述,在ApiResonse中

@ApiResponses:Http响应所有的描述,用在

@ApiIgnore:忽略这个API

@ApiError:发生错误的返回信息

@ApiImplicitParam:一个请求参数

@ApiImplicitParam:多个请求参数

转载于:https://my.oschina.net/jhy168/blog/2247144

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值