java swagger2 的使用

为了方便调用接口,实现接口的可视化。使用swagger2。本文采用springboot项目集成 swagger2

第一步: 加入maven依赖

  <!-- swagger2 -->
        <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>

第二步:application.yml 文件加入

swagger:
  enabled: true

第三步: 引入工具类:

package com.dj.lam.config;


import org.springframework.beans.factory.annotation.Value;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @program: boot_demo
 * @description
 * @author: xk
 * @create: 20220915
 **/
@Configuration
@EnableSwagger2
public class Swagger2Config {

    //是否开启swagger,正式环境一般是需要关闭的,从配置文件中读取
    @Value(value = "${swagger.enabled}")
    Boolean swaggerEnabled;

    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                // 是否开启
                .enable(swaggerEnabled).select()
                // 扫描的路径包
                .apis(RequestHandlerSelectors.basePackage("com.dj.lam.controller"))
                // 指定路径处理PathSelectors.any()代表所有的路径
                .paths(PathSelectors.any()).build().pathMapping("/");
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("Swaggerdemo")
                .description("demo")
                // 作者信息
                .contact(new Contact("xk", "https://mp.csdn.net/?spm=1001.2101.3001.8539", "qqq@163.com"))
                .version("1.0.0")
                .build();
    }
}

第四步 控制层加入注解和注释,可以备注接口注释

事例代码:

package com.dj.lam.controller;

import com.dj.lam.pojo.User;
import com.dj.lam.service.UserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.*;
import java.util.stream.Collectors;

/**
 * @program: cloud_demo
 * @description
 * @author: WYF
 * @create: 2019-11-06 16:35
 **/
@RestController
@RequestMapping("/user/")
@Api(tags = "lambda测试")
public class UserController {


    @Autowired
    private UserService userService;

    /**
     * 正序
     */
    @GetMapping("rank")
    @ApiOperation("正序")
    public void rank(){
        List<User> userList = userService.list();
        userList.sort(Comparator.comparing(User::getAge));
//        Stream<User> sorted = userList.stream().sorted(Comparator.comparing(User::getAge));
        userList.forEach(user -> {
           System.out.println(user.toString());
        });
    }

    /**
     * 多字段正序
     */
    @GetMapping("moreRank")
    @ApiOperation("多字段正序")
    public void moreRank(){
        List<User> userList = userService.list();
        userList.sort(Comparator.comparing(User::getAge).thenComparing(User::getPwd));
        userList.forEach(user -> {
            System.out.println(user.toString());
        });
    }

    /**
     * 倒序
     */
    @GetMapping("inverted")
    @ApiOperation("倒序")
    public void rqanks(){
        List<User> userList = userService.list();
        //第一种
        /*Comparator<User> comparator = ((u1, u2) -> u1.getId().compareTo(u2.getId()));
        userList.sort(comparator.reversed());*/
        //第二种 需要遍历 sorted
//        Stream<User> sorted = userList.stream().sorted(Comparator.comparing(User::getAge).reversed());
        //第三种
        userList.sort(Comparator.comparing(User::getId).reversed());
        userList.forEach(user -> {
            System.out.println("倒序====" + user.toString());
        });
    }

    /**
     * 最大、最小
     */
    @GetMapping("minAndmax")
    @ApiOperation("最大、最小")
    public void minAndmax(){
        List<User> userList = userService.list();
        Comparator<User> comparator = Comparator.comparing(User::getAge);
        User minUser = userList.stream().min(comparator).get();
        System.out.println("最小===" + minUser.toString());

        User maxUser = userList.stream().max(comparator).get();
        System.out.println("最大===" + maxUser.toString());
    }

    /**
     * 过滤
     */
    @GetMapping
    @ApiOperation("过滤")
    public void filtration(){
        List<User> userList = userService.list();
        List<User> list = userList.stream().filter(user -> user.getAge().equals(3)).collect(Collectors.toList());
        list.forEach(user -> {
            System.out.println("年龄3岁的===" + user.toString());
        });
    }

    /**
     * 转map
     * @return
     */
    @GetMapping("turnMap")
    @ApiOperation("转换map")
    public Map<String, Integer> turnMap(){
        List<User> userList = userService.list();
        Map<String, Integer> map = userList.stream().collect(Collectors.toMap(User::getName, User::getAge));
        System.out.println(map);
        return map;
    }

    /**
     * 求对象属性和
     */
    @GetMapping("ageSum")
    @ApiOperation("求对象属性和")
    public void ageSum(){
        List<User> userList = userService.list();
        Integer sum = userList.stream().collect(Collectors.summingInt(User::getAge));
        System.out.println("年龄之和 : " + sum);
    }


    /**
     * 分组
     * @return
     */
    @GetMapping("grouping")
    @ApiOperation("分组")
    public Map<Integer, List<User>> grouping(){
        List<User> userList = userService.list();
        Map<Integer, List<User>> map = userList.stream().collect(Collectors.groupingBy(User::getAge));
        for(Map.Entry<Integer, List<User>> entry : map.entrySet()){
            List<User> value = entry.getValue();
        }
        return map;
    }

    /**
     * 去重
     */
    @GetMapping("distinct")
    @ApiOperation("去重")
    public void distinct(){
        List<User> userList = userService.list();
        List<User> sLists = userList.stream().collect(
                Collectors.collectingAndThen(Collectors.toCollection(
                        () -> new TreeSet<>(Comparator.comparing(c -> c.getAge()))), ArrayList::new));
        sLists.forEach(user -> {
            System.out.println(user.toString());
        });
    }
}

访问地址: http://localhost:8080/swagger-ui.html
成功截图:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值