Swagger基本使用与RestTemplate发送http接口测试

简介: Swagger基本使用与RestTemplate发送http接口测试

Swagger


  • 导入依赖
      <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <!--swagger ui-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
  • 配置文件SwaggerConfig.java
/**
 * @Author Tiam
 * @Date 2021/12/10 13:48
 * @Description: Swagger配置类
 */
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket webApiConfig() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("webApi")
                .apiInfo(webApiInfo())
                .select()
                // 指定controller包
                .apis(RequestHandlerSelectors.basePackage("com.example"))
                // 所有controller
                //.paths(PathSelectors.any())  会带有基础错误控制类
                .build();
    }

    private ApiInfo webApiInfo() {
        return new ApiInfoBuilder()
                .title("Swagger2-测试API文档")
                //文档作用描述
                .description("本文档对平时的一些接口进行测试")
                .version("1.0")
                //Swagger地址
                .termsOfServiceUrl("http://localhost:8080/swagger-ui.html")
                //作者名,链接地址,联系方式
                .contact(new Contact("Tiam", "http://www.yujing.fit/", "3036293856@qq.com"))
                .build();
    }
}


.paths(PathSelectors.any()) 效果


POJO类

 @ApiModelProperty(value ="ID")
    private Integer id;
    @ApiModelProperty(value ="年龄")
    private Integer age;
    @ApiModelProperty(value ="姓名")
    private String name;
    @ApiModelProperty(value ="创建日期")
    private Date createDate;


控制类

/**
 * @Author Tiam
 * @Date 2021/12/9 13:55
 * @Description:
 */
@Api(tags = "User控制类")
@RestController
@Slf4j
public class UserController {
    @Autowired
    private UserService userService;

    @ApiOperation(value = "根据姓名查询", notes = "备注:更详细的说明")
    @ApiImplicitParam(name = "name", value = "姓名", paramType = "path")
    @GetMapping("/findUserByName/name/{name}")
    public List<User> findUserByName(@PathVariable("name") String name) {
        log.info("您输入的姓名是:",name);
        return userService.select(name);
    }
}


RestTemplate类使用


配置类RestemplateConfig

/**
 * @Author Tiam
 * @Date 2021/12/6 10:52
 * @Description: RestTemplate配置类
 */
@Configuration
public class RestemplateConfig {
    /**
     * 调用其他服务的接口
     * @return
     */
    @Bean
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}


控制类

/**
 * @Author Tiam
 * @Date 2021/12/10 11:10
 * @Description: http接口请求调用测试
 */
@Api(tags = "http请求控制类")
@RestController
@Slf4j
public class HttpController {
    public static final String URL = "http://apis.juhe.cn/fapig/sudoku/generate?key=34f37a2e3ebb4b7133b54264a44c6596&difficulty=";
    @Resource
    private RestTemplate restTemplate;

    /**
     * 获取数独游戏模型
     *
     * @param difficulty 难度级别, easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy
     * @return
     */
    @ApiOperation(value = "数独", notes = "数独游戏模型获取")
    @ApiImplicitParam(name = "difficulty"
            , value = "难度级别, easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy"
            , paramType = "query"  //参数位置说明
            , defaultValue = "easy" //默认值
            ,required = false
            //,example = "easy(简单)、normal(普通)、hard(困难)、veryhard(非常困难); 默认easy"
    )
    @GetMapping(value = {"/getSudoku/dif"})
    public Object getSudoku(@RequestParam(required = false)String difficulty) {
        log.info("转发链接:{}", URL + difficulty);
        //get请求 , url地址 , 返回数据类型
        return restTemplate.getForObject(URL + difficulty, Object.class);
    }
}


测试演示


参考文章


https://blog.csdn.net/jinjiniao1/article/details/100849237

https://blog.csdn.net/itguangit/article/details/78825505

相关文章
|
13天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
24 3
|
3天前
|
安全 API 持续交付
阿里云云效产品使用问题之如何从流水线访问内网平台的HTTP接口
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
58 5
|
6天前
|
存储 JSON 测试技术
软件测试之 接口测试 Postman使用(下)
软件测试之 接口测试 Postman使用(下)
17 2
|
6天前
|
测试技术 数据格式
软件测试之 接口测试 Postman使用(上)
软件测试之 接口测试 Postman使用(上)
14 1
|
13天前
|
监控 前端开发 测试技术
postman接口测试工具详解
postman接口测试工具详解
43 7
|
14天前
|
监控 JavaScript 前端开发
postman接口测试工具详解
postman接口测试工具详解
21 6
|
3天前
|
JSON 前端开发 测试技术
从零开始:学习使用 Postman 进行接口测试
在当前,API(应用程序接口)的使用变得越来越普遍。其中,HTTP/HTTPS API 是最常见的一种。无论是开发前端还是后端,测试 API 都是一个关键环节。Postman 是一种流行且强大的 API 测试工具,能够帮助开发人员轻松地进行接口测试和调试。
|
3天前
|
敏捷开发 测试技术 API
阿里云云效产品使用问题之API中包含有获取测试计划的接口吗
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4天前
|
安全 API 数据安全/隐私保护
​6个值得测试的发送邮件接口API
在数字营销和企业通信中,发送邮件接口API如SendGrid、Mailgun、Amazon SES、AOKSend、Postmark和Sendinblue是关键工具。这些API自动化邮件发送,提高效率,确保及时送达。各具特色,如SendGrid和Mailgun适合大规模发送,AOKSend易于集成,Postmark专于事务邮件,而Sendinblue提供综合营销解决方案。根据企业需求,如邮件量、成本、功能和集成简易度,可选择最适合的API服务。