API接口文档利器:Swagger 和 接口调试利器:Postman

2.接口相关工具

2.1API接口文档利器:Swagger

2.1.1Swagger介绍

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务

(https://swagger.io/)。 它的主要作用是:

  1. 使得前后端分离开发更加方便,有利于团队协作

  2. 接口的文档在线自动生成,降低后端开发人员编写接口文档的负担

  3. 功能测试

Spring已经将Swagger纳入自身的标准,建立了Spring-swagger项目,现在叫Springfox。通过在项目中引入Springfox ,即可非常简单快捷的使用Swagger。

2.1.2SpringBoot集成Swagger

  1. 在huiminpay-common项目中添加依赖,只需要在huiminpay-common中进行配置即可,因为其他微服务工程都直接或间接依赖huiminpay-common。

    <!-- Swagger依赖 -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
    </dependency>
    
  2. 在huiminpay-merchant-application工程的config包中添加一个Swagger配置类

package com.huiminpay.merchant.config;

import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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;

@Configuration
//此注解控制配置类是否生效,意思是当配置文件中prefix.value的值==havingValue的值则生效,否则无效
@ConditionalOnProperty(prefix = "swagger",value = {"enable"},havingValue = "true")
@EnableSwagger2
public class SwaggerConfiguration {
    @Bean
    public Docket buildDocket() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(buildApiInfo())
                .select()
                // 要扫描的API(Controller)基础包,注意要修改成自己项目的包路径
                .apis(RequestHandlerSelectors.basePackage("com.huiminpay.merchant.controller"))
            	//过滤什么请求
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 构建API基本信息
     */
    private ApiInfo buildApiInfo() {
        //联系信息
        Contact contact = new Contact("开发者", "", "");
        return new ApiInfoBuilder()
                .title("惠民支付-商户应用API文档")
                .description("")
                .contact(contact)
                .version("1.0.0").build();
    }
}
  1. 添加SpringMVC配置类:WebMvcConfig,让外部可直接访问Swagger文档
package com.huiminpay.merchant.config;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @author Administrator
 * @version 1.0
 **/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    /**
     * 添加静态资源文件,外部可以直接访问地址
     * @param registry
     */
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("swagger-ui.html")
                .addResourceLocations("classpath:/META-INF/resources/");
        registry.addResourceHandler("/webjars/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/");//解决swagger2中js无法访问
    }
}

2.1.3Swagger常用注解

在Java类中添加Swagger的注解即可生成Swagger接口文档,常用Swagger注解如下:

@Api:修饰整个类,描述Controller的作用

@ApiOperation:描述一个类的一个方法,或者说一个接口

@ApiParam:单个参数的描述信息

@ApiModel:用对象来接收参数

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

@ApiResponse:HTTP响应其中1个描述

@ApiResponses:HTTP响应整体描述

@ApiIgnore:使用该注解忽略这个API

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

@ApiImplicitParam:一个请求参数

@ApiImplicitParams:多个请求参数的描述信息

@ApiImplicitParam属性:

属性取值作用
paramType查询参数类型
path以地址的形式提交数据
query直接跟参数完成自动映射赋值
body以流的形式提交 仅支持POST
header参数在request headers 里边提交
form以form表单的形式提交 仅支持POST
dataType参数的数据类型 。只作为标志说明,并没有实际验证
Long
String
name接收参数名
value接收参数的意义描述
required参数是否必填
true必填
false非必填
defaultValue默认值

上边的属性后边编写程序时用到哪个我再详细讲解,下边写一个swagger的简单例子,我们在MerchantController 中添加Swagger注解,代码如下所示:

    @ApiOperation("测试")
    @GetMapping("/hello/{name}")
    public String hello(@PathVariable("name") String name) {
        return "hello," + name;
    }

    @ApiOperation("测试")
    @PostMapping("/hi/{name}")
    public String hi(@PathVariable("name") String name) {
        return "hi," + name;
    }

2.1.4Swagger测试

  1. 启动商户应用和商户中心服务,访问:http://localhost:57010/merchant/swagger-ui.html

  2. 点击其中任意一项即可打开接口详情,如下图所示:

  3. 点击“Try it out”开始测试,并录入参数信息,然后点击“Execute"发送请求,执行测试返回结果:“hi,李四”

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Swagger生成API文档的工作原理:

1、huiminpay-merchant-application启动时会扫描到SwaggerConfiguration类

2、在此类中指定了扫描包路径com.huiminpay.merchant.controller,会找到在此包下及子包下标记有

@RestController注解的controller类

3、根据controller类中的Swagger注解生成API文档

**注意:**如果第2步扫描包路径有误则会出现swagger页面正常显示,但是没有接口信息的情况。

2.2 接口调试利器Postman

Postman是一款功能强大的http接口测试工具,使用Postman可以完成http各种请求的功能测试。作为服务器端开发人员,当一个业务功能开发完毕后,应该用Postman进行功能测试。

1、请自行在本机安装Postman

2、新建集合(建议一个微服务新建一个对应的集合):惠民支付-商户应用

3、在惠民支付-商户应用集合中新建请求Add Request,并录入请求信息

在这里插入图片描述

填写新建商户接口地址和请求类型后,点击Send发送请求:
在这里插入图片描述

小技巧:每个测试都可以进行保存(Ctrl+S),以便于后续使用。

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
Swagger是一款流行的API设计工具,它可以帮助我们更轻松地设计、构建和测试APISwagger2是Swagger的一个版本,它可以生成API接口文档,这样我们就可以更清晰地了解API的使用方法。 下面是使用Swagger2生成API接口文档的步骤: 1. 在项目中添加Swagger2依赖 在Maven项目中,可以在pom.xml文件中添加以下依赖: ``` <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> ``` 2. 配置Swagger2 在Spring Boot项目中,可以在application.properties或application.yml文件中添加以下配置: ``` # Swagger2配置 swagger2.enabled=true # 启用Swagger2 swagger2.title=API接口文档 # 文档标题 swagger2.description=API接口文档 # 文档描述 swagger2.version=1.0 # 文档版本 swagger2.basePackage=com.example.demo # 扫描的包路径 ``` 3. 编写API接口Spring Boot项目中,可以使用Spring MVC的注解来编写API接口,例如: ``` @RestController @RequestMapping("/api") @Api(tags = "用户管理") public class UserController { @GetMapping("/users") @ApiOperation("获取用户列表") public List<User> getUsers() { // TODO: 查询用户列表 return null; } @GetMapping("/users/{id}") @ApiOperation("根据ID获取用户") @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long") public User getUserById(@PathVariable Long id) { // TODO: 根据ID查询用户 return null; } @PostMapping("/users") @ApiOperation("创建用户") @ApiImplicitParam(name = "user", value = "用户信息", required = true, dataType = "User") public User createUser(@RequestBody User user) { // TODO: 创建用户 return null; } @PutMapping("/users/{id}") @ApiOperation("更新用户") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "user", value = "用户信息", required = true, dataType = "User") }) public User updateUser(@PathVariable Long id, @RequestBody User user) { // TODO: 更新用户 return null; } @DeleteMapping("/users/{id}") @ApiOperation("删除用户") @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long") public void deleteUser(@PathVariable Long id) { // TODO: 删除用户 } } ``` 4. 访问Swagger2文档 在启动Spring Boot应用程序后,可以在浏览器中访问以下URL以查看Swagger2生成的API接口文档:http://localhost:8080/swagger-ui.html 在Swagger2的文档页面中,可以查看接口的详细信息,包括请求和响应的参数、请求方式、请求路径等。同时,我们也可以在页面中测试API接口

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小天博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值