SpringBoot使用Swagger2

pom依赖

 <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>com.mangofactory</groupId>
        <artifactId>swagger-springmvc</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.mangofactory</groupId>
        <artifactId>swagger-models</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>com.wordnik</groupId>
        <artifactId>swagger-annotations</artifactId>
        <version>1.3.11</version>
    </dependency>

配置类

package top.xz.hand.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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * Swagger2的配置文件
 *
 **/
@EnableSwagger2
@Configuration
public class Swagger2Config {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .enable(true)
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();

    }

    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("Innocent的API")
                .description("@API")
                .build();
    }
}

注解使用

package top.xz.hand.controller;

import org.springframework.beans.factory.annotation.Autowired;
import top.xz.hand.core.BasePageSearch;
import top.xz.hand.dto.IDValid;
import top.xz.hand.result.PageResult;
import top.xz.hand.result.Result;
import top.xz.hand.result.ResultCode;
import top.xz.hand.model.UserInfo;
import top.xz.hand.service.RedisService;
import top.xz.hand.service.UserInfoService;
import org.springframework.web.bind.annotation.*;
import com.wordnik.swagger.annotations.Api;
import com.wordnik.swagger.annotations.ApiOperation;
import tk.mybatis.mapper.entity.Condition;

import javax.annotation.Resource;
import java.util.List;

/**
 * Created by XZ on 2019/08/07.
 */
@RestController
@RequestMapping("/user/info")
@Api(value = "xx", description = "xx") 
public class UserInfoController {
    @Resource
    private RedisService redisService;
    @Resource
    private UserInfoService services;

    @RequestMapping(value = "/get_list", method = RequestMethod.POST)
    @ResponseBody
    public Object get_list(@RequestBody BasePageSearch<UserInfo> modelValid) {
        Condition condition = new Condition(UserInfo.class);
        Condition.Criteria criteria = condition.createCriteria();
//        condition.setOrderByClause("ID DESC");

        UserInfo model = modelValid.getSearch() == null ? new UserInfo() : modelValid.getSearch();

//模型判断是否等于场景使用比如 ID = 10
//        List<UserInfo> lists = services.selectForStartPage(model,modelValid.getPage(),modelValid.getLimit());
//        long total = services.count(model);

        List<UserInfo> lists = services.selectByConditionForStartPage(condition, modelValid.getPage(), modelValid.getLimit());
        long total = services.countByCondition(condition);

        return new Result(ResultCode.SUCCESS, lists, new PageResult(modelValid.getPage(), total));
    }

    @RequestMapping(value = "/get_one", method = RequestMethod.POST)
    @ResponseBody
    public Object get_one(@RequestBody IDValid valid) {
        UserInfo model = services.selectByPrimaryKey(valid.getId());
        return new Result(ResultCode.SUCCESS, model);
    }

    @RequestMapping(value = "/add_one", method = RequestMethod.POST)
    @ResponseBody
    public Object add_one(@RequestBody UserInfo model) {
        services.insertSelective(model);
        return new Result(ResultCode.SUCCESS, model.getId());
    }

    @RequestMapping(value = "/add_multiple", method = RequestMethod.POST)
    @ResponseBody
    public Object add_multiple(@RequestBody List<UserInfo> model) {
        services.insertList(model);
        return new Result(ResultCode.SUCCESS);
    }

    @RequestMapping(value = "/edit_one", method = RequestMethod.POST)
    @ResponseBody
    public Object edit_one(@RequestBody UserInfo model) {
        services.updateByPrimaryKeySelective(model);
        return new Result(ResultCode.SUCCESS);
    }

    @RequestMapping(value = "/delete_one", method = RequestMethod.POST)
    @ResponseBody
    public Object delete_one(@RequestBody IDValid valid) {
        services.deleteByPrimaryKey(valid.getId());
        return new Result(ResultCode.SUCCESS);
    }

    @RequestMapping(value = "/delete_multiple", method = RequestMethod.POST)
    @ResponseBody
//ids 1,2,3,4
    public Object delete_multiple(@RequestBody String ids) {
        services.deleteByIds(ids);
        return new Result(ResultCode.SUCCESS);
    }
    

}

访问路径:

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

 

posted @ 2019-08-23 15:44  notMore  阅读(273)  评论(0)    收藏  举报