Swagger使用入门教程

新建一个springBoot工程

1.新建一个空项目,使用Spring Initializr模板添加一个模块

新建一个空项目,使用Spring Initializr模板添加一个模块

2.pom文件添加swagger依赖

 <!--swagger-api依赖开始-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.7.0</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.6.6</version>
        </dependency>
  <!--swagger-api依赖结束-->

完整依赖在这里插入图片描述

3.新建config包编写配置文件类SwaggerConfig和WebMvcConfigurer

在这里插入图片描述
SwaggerConfig

package com.lb.swagger.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
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;

@Configuration//必须存在
@EnableSwagger2//必须存在
@EnableWebMvc //必须存在
//扫描的API Controller包
@ComponentScan(basePackages = {"com.lb.swagger.controller"})
public class SwaggerConfig {
    @Bean
    public Docket customDocket(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo());
    }
    private ApiInfo apiInfo() {
        Contact contact = new Contact("LB", "www.baidu.com", "[email protected]");
        return new ApiInfoBuilder()
                .title("swagger入门项目接口")
                .description("API接口")
                .contact(contact)
                .version("1.1.0")
                .build();
    }
}

WebMvcConfigurer

package com.lb.swagger.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    public void addResourceHandlers(ResourceHandlerRegistry registry){
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");
    }
}

4.添加UserController

在这里插入图片描述

package com.lb.swagger.controller;

import com.lb.swagger.pojo.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@Api(value = "用户模块",description = "用户模块的接口信息")
public class UserController {
    //模拟一个数据库
    public static ArrayList<User> users = new ArrayList<>();
    static {
        users.add(new User("张三","1234"));
        users.add(new User("李四","3456"));
    }

    //接口简单描述和详细描述
    @ApiOperation(value = "获取用户列表",notes = "获取所有用户的信息")
    @GetMapping("/users")
    public Map getUsers(){
        Map<String, List> map = new HashMap<>();
        map.put("users",users);
        return map;
    }

    //接口简单描述和详细描述
    @ApiOperation(value = "根据用户ID查询用户",notes = "查询单个用户信息")
    //参数信息
    @ApiImplicitParam(name = "id",value = "用户ID",dataType = "int",paramType = "path")
    @GetMapping("/users/{id}")
    public User getUserById(@PathVariable("id") String id){
        int uid = Integer.parseInt(id);
        User user = users.get(uid);
        return user;
    }

    @ApiOperation(value = "添加用户")
    @ApiImplicitParam(value = "用户类",paramType = "query")
    @PostMapping("/user")
    public Object add(User user){
        System.out.println(user);
        return users.add(user);
    }

    @ApiOperation(value = "删除用户",notes = "根据url的id来指定删除对象")
    @ApiImplicitParam(name = "id",value = "用户ID",dataType = "int",paramType = "path")
    @DeleteMapping(value = "users/{id}")
    public Object delete(@PathVariable("id") int id){
        return users.remove(id);
    }

}

5.添加User

在这里插入图片描述

6.测试

在这里插入图片描述

发布了23 篇原创文章 · 获赞 3 · 访问量 612

猜你喜欢

转载自blog.csdn.net/qq_25292419/article/details/102096076