• 接口测试工具的实验,Postman、Swagger、knife4j(黑马头条)


    一、Postman

    最常用的接口测试软件,需要注意点:在进行post请求时,需要选择JSON形式发送

    输入JSON字符串,比如:

    1. {
    2. "maxBehotTime": "2021-04-19 00:19:09",
    3. "minBehotTime": "2021-04-10 00:19:09",
    4. "size": 10,
    5. "tag": "Java"
    6. }

    二、Swagger

    1.Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务(https://swagger.io/)。 

    2.实现过程:

    (1)导包:

    1. <dependency>
    2. <groupId>io.springfox</groupId>
    3. <artifactId>springfox-swagger2</artifactId>
    4. </dependency>
    5. <dependency>
    6. <groupId>io.springfox</groupId>
    7. <artifactId>springfox-swagger-ui</artifactId>
    8. </dependency>

    (2)添加自动配置类SwaggerConfiguration

    1. package com.heima.common.swagger;
    2. import org.springframework.context.annotation.Bean;
    3. import org.springframework.context.annotation.Configuration;
    4. import springfox.documentation.builders.ApiInfoBuilder;
    5. import springfox.documentation.builders.PathSelectors;
    6. import springfox.documentation.builders.RequestHandlerSelectors;
    7. import springfox.documentation.service.ApiInfo;
    8. import springfox.documentation.service.Contact;
    9. import springfox.documentation.spi.DocumentationType;
    10. import springfox.documentation.spring.web.plugins.Docket;
    11. import springfox.documentation.swagger2.annotations.EnableSwagger2;
    12. @Configuration
    13. @EnableSwagger2
    14. public class SwaggerConfiguration {
    15. @Bean
    16. public Docket buildDocket() {
    17. return new Docket(DocumentationType.SWAGGER_2)
    18. .apiInfo(buildApiInfo())
    19. .select()
    20. // 要扫描的API(Controller)基础包
    21. .apis(RequestHandlerSelectors.basePackage("com.heima"))
    22. .paths(PathSelectors.any())
    23. .build();
    24. }
    25. private ApiInfo buildApiInfo() {
    26. Contact contact = new Contact("黑马程序员","","");
    27. return new ApiInfoBuilder()
    28. .title("黑马头条-平台管理API文档")
    29. .description("黑马头条后台api")
    30. .contact(contact)
    31. .version("1.0.0").build();
    32. }
    33. }

    (3)在spring.factories添加这个类的全路径  使其生效  ()

    1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
    2. com.heima.common.exception.ExceptionCatch,\
    3. com.heima.common.swagger.SwaggerConfiguration,\
    4. com.heima.common.swagger.Swagger2Configuration

    (4)然后在相关的controller中添加注解@Api,方法上可以添加@ApiOperation,对象加入@ApiModelProperty。

    ApUserLoginController:

    LoginDto:

    (5)看一下自己bootstrap.yml的访问地址端口号,我的是localhost:51801,结果如下:

    (6)最后,访问地址:http://localhost:51801/swagger-ui.html     (注意端口号)

    三、knife4j

    1.比swagger多几个功能,包括生成离线文档、个性化配置等。

    2.配置基本同swagger

    (1)导包

    1. <dependency>
    2. <groupId>com.github.xiaoymin</groupId>
    3. <artifactId>knife4j-spring-boot-starter</artifactId>
    4. </dependency>

    (2)添加自动配置类Swagger2Configuration

    1. package com.heima.common.swagger;
    2. import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
    3. import org.springframework.context.annotation.Bean;
    4. import org.springframework.context.annotation.Configuration;
    5. import org.springframework.context.annotation.Import;
    6. import springfox.bean.validators.configuration.BeanValidatorPluginsConfiguration;
    7. import springfox.documentation.builders.ApiInfoBuilder;
    8. import springfox.documentation.builders.PathSelectors;
    9. import springfox.documentation.builders.RequestHandlerSelectors;
    10. import springfox.documentation.service.ApiInfo;
    11. import springfox.documentation.spi.DocumentationType;
    12. import springfox.documentation.spring.web.plugins.Docket;
    13. import springfox.documentation.swagger2.annotations.EnableSwagger2;
    14. @Configuration
    15. @EnableSwagger2
    16. @EnableKnife4j // 该注解是`knife4j`提供的增强注解,Ui提供了例如动态参数、参数过滤、接口排序等增强功能
    17. @Import(BeanValidatorPluginsConfiguration.class)
    18. public class Swagger2Configuration {
    19. @Bean(value = "defaultApi2")
    20. public Docket defaultApi2() {
    21. Docket docket=new Docket(DocumentationType.SWAGGER_2)
    22. .apiInfo(apiInfo())
    23. //分组名称
    24. .groupName("1.0")
    25. .select()
    26. //这里指定Controller扫描包路径
    27. .apis(RequestHandlerSelectors.basePackage("com.heima"))
    28. .paths(PathSelectors.any())
    29. .build();
    30. return docket;
    31. }
    32. private ApiInfo apiInfo() {
    33. return new ApiInfoBuilder()
    34. .title("黑马头条API文档")
    35. .description("黑马头条API文档")
    36. .version("1.0")
    37. .build();
    38. }
    39. }

    (3)(4)(5)同swagger

    最后输入:http://localhost:51801/doc.html 即可

  • 相关阅读:
    [计算机网络]网络基础
    双向TVS的符号及几个参数问题?
    基于matlab寻找并显示一维数组t中的素数
    SpringMvc中的@RequestMapping的用法简介说明
    分布式软件架构——服务端缓存的三种属性
    DVWA-弱会话IDS
    JavaSE入门--初始Java
    mac本地搭建ollama
    网络面试-ox07http中的keep-alive以及长/短连接
    UVA 1152 和为 0 的 4 个值 4 Values whose Sum is 0
  • 原文地址:https://blog.csdn.net/xiaomingming99/article/details/134251419