现在的项目大多数都是前后端分离,所以对于后端开发,我们需要一个接口工具帮我们进行接口的整理、也方便我们测试。推荐postMan和Swagger形式,然后postMan需要自己手写接口,然后参数需要手动粘贴,但是相比于它,Swagger就相对方便很多了,他会根据后台的代码,然后自动生成接口以及参数名。

在pom.xml中引入相应的依赖jar包

    <!-- Swagger相关依赖 -->
        <dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.5.20</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>

配置Swagger2配置文件

@Configuration
    @EnableSwagger2
    public class Swagger2 {
    @Bean
    public Docket createRestApi(){
        return  new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.ten.base.controller"))
                .paths(PathSelectors.any()).build();
    }
    
    
    private ApiInfo apiInfo(){
        return  new ApiInfoBuilder().title("Springboot-api文档")
                .description("").termsOfServiceUrl("")
                .version("1.0").build();
    }

注意:需要将下面红框中改成自己的的controller路径,否则swagger页面不显示;

package com.example.demowechat.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;

/**
 * @ClassName Swagger2
 * @Description TODO
 * @Author 张
 * @Date 2019/07/2809:39
 * Version 1.0
 **/

@Configuration
@EnableSwagger2
public class Swagger2 {
    @Bean
    public Docket createRestApi(){
        return  new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()             
                .apis(RequestHandlerSelectors.basePackage
              ("com.example.demowechat.controller")//此出换为自己的controller路径
              )
                .paths(PathSelectors.any()).build();
    }


    private ApiInfo apiInfo(){
        return  new ApiInfoBuilder().title("Springboot-api文档")
                .description("").termsOfServiceUrl("")
                .version("1.0").build();
    }

3.然后在相应接口加上Swagger注解

package com.example.demowechat.controller;

import com.example.demowechat.dataobject.ProductInfo;
import com.example.demowechat.service.ProductService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import java.util.Map;
/**
 * @ClassName SellProductController  卖家端商品
 * @Author 张
 * @Date 2019/07/3020:53
 * Version 1.0
 **/

@Api(tags = {("卖家端商品列表")})
@Controller
@Slf4j
@RequestMapping("/seller/product")
public class SellProductController {

    @Autowired
    private ProductService productService;


    /**
     *卖家商品列表
     * @param page
     * @param size
     * @param map
     * @return
     */
    @ApiOperation("卖家商品列表")
    @GetMapping("/list")
    public ModelAndView list (@RequestParam(value = "page"  ,defaultValue = "1") Integer page ,
                              @RequestParam(value = "size", defaultValue = "10") Integer size ,
                              Map<String,Object> map){
        PageRequest request = new PageRequest(page -1 ,size);
        Page<ProductInfo>  productInfoPage = productService.findAll(request);
        map.put("productInfoPage",productInfoPage);
        map.put("currentPage",page);
        map.put("size", size);
        return new ModelAndView("product/list" , map);

    }
}

备注:

@Api :用在类上,说明该类的作用
@ApiOperation:用在方法上,说明方法的作用
@ApiModel:描述一个Model的信息
@ApiModelProperty:实体中参数信息

启动服务测试,在浏览器中输入“http://localhost:8080/swagger-ui.html”,然后我们就可以看到相应的界面了。
在这里插入图片描述
5.如果不想手动输入 地址,可以在idea进行配置一下,就可以自动弹出页面了。地址填写:http://127.0.0.1:8080/sell/swagger-ui.html#/
在这里插入图片描述

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐