java小程序测试_「小程序JAVA实战」swagger2的使用与接口测试(34)

转自:https://idig8.com/2018/08/31/xiaochengxujavashizhanswagger2deshiyongyujiekouceshi34/

我们已经开发完了一个用户注册的接口,但是我们并没有测试也不知道里面哪里忽略了,有什么问题,先讲下下swagger2,然后集成到spring boot这个项目中。源码:https://github.com/limingios/wxProgram.git 中的wx-springboot

swagger2

介绍

>swagger2 是可以构建一个非常强大的,是个非常好用的工具也是个非常好用的插件。

可以生成文档形式的api并提供给不同的团队

便于自测,也便于领导查阅任务量。

无需过多冗余的word文档。保证文档是最新的。

使用方法

>在spring boot common中pom中引入

cafa2f2b9e38c7c07367f106c0a0fb00.png

io.springfox

springfox-swagger2

2.4.0

io.springfox

springfox-swagger-ui

2.4.0

添加swagger2的配置文件

>在spring boot api中加入java类

2c830ab4a0701048b03c377ff6430b6d.png

package com.idig8;

import java.util.ArrayList;

import java.util.List;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import springfox.documentation.builders.ApiInfoBuilder;

import springfox.documentation.builders.ParameterBuilder;

import springfox.documentation.builders.PathSelectors;

import springfox.documentation.builders.RequestHandlerSelectors;

import springfox.documentation.schema.ModelRef;

import springfox.documentation.service.ApiInfo;

import springfox.documentation.service.Contact;

import springfox.documentation.service.Parameter;

import springfox.documentation.spi.DocumentationType;

import springfox.documentation.spring.web.plugins.Docket;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@Configuration

@EnableSwagger2

public class Swagger2 {

/**

* @Description:swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等

*/

@Bean

public Docket createRestApi() {

// 为swagger添加header参数可供输入

ParameterBuilder userTokenHeader = new ParameterBuilder();

ParameterBuilder userIdHeader = new ParameterBuilder();

List pars = new ArrayList();

userTokenHeader.name("headerUserToken").description("userToken")

.modelRef(new ModelRef("string")).parameterType("header")

.required(false).build();

userIdHeader.name("headerUserId").description("userId")

.modelRef(new ModelRef("string")).parameterType("header")

.required(false).build();

pars.add(userTokenHeader.build());

pars.add(userIdHeader.build());

return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select()

.apis(RequestHandlerSelectors.basePackage("com.idig8.controller"))

.paths(PathSelectors.any()).build()

.globalOperationParameters(pars);

}

/**

* @Description: 构建 api文档的信息

*/

private ApiInfo apiInfo() {

return new ApiInfoBuilder()

// 设置页面标题

.title("使用swagger2构建小程序后端api接口文档")

// 设置联系人

.contact(new Contact("IT人故事会", "https://idig8.com", "公众号:编程坑太多"))

// 描述

.description("欢迎访问接口文档")

// 定义版本号

.version("1.0").build();

}

}

修改原有的controller的修改

package com.idig8.controller;

import org.apache.commons.lang3.StringUtils;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.RequestBody;

import org.springframework.web.bind.annotation.RestController;

import com.github.pagehelper.util.StringUtil;

import com.idig8.pojo.Users;

import com.idig8.service.UserService;

import com.idig8.utils.JSONResult;

import com.idig8.utils.MD5Utils;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

@RestController

@Api(value="用户注册登录的接口",tags={"注册和登录的controller"})

public class RegistLoginController {

@Autowired

private UserService userService;

@ApiOperation(value="用户注册",notes="用户注册的接口")

@PostMapping("/regist")

public JSONResult regist(@RequestBody Users user) {

//1.判断用户名和密码不能为空

if(StringUtils.isBlank(user.getUsername())||StringUtils.isBlank(user.getPassword())) {

return JSONResult.errorMsg("用户名或密码不能为空");

}

//2.判断用户名是否存在

boolean usernameIsExist = userService.queryUsernameIsExist(user.getUsername());

if(!usernameIsExist) {

user.setNickname(user.getUsername());

try {

user.setPassword(MD5Utils.getMD5Str(user.getPassword()));

} catch (Exception e) {

return JSONResult.errorMsg(e.getMessage());

}

user.setFollowCounts(0);

user.setReceiveLikeCounts(0);

user.setFansCounts(0);

userService.saveUser(user);

}else {

return JSONResult.errorMsg("用户名或已经存在,请更换在试试!");

}

return JSONResult.ok();

}

}

增加Users属性的限制,那些必填 ,spring-boot pojo项目

package com.idig8.pojo;

import javax.persistence.*;

import io.swagger.annotations.ApiModel;

import io.swagger.annotations.ApiModelProperty;

@ApiModel(value="用户对象",description="这是用户对象")

public class Users {

@Id

@ApiModelProperty(hidden=true)

private String id;

/**

* 用户名

*/

@ApiModelProperty(value="用户名",name="username",example="idig8",required=true)

private String username;

/**

* 密码

*/

@ApiModelProperty(value="密码",name="password",example="123456",required=true)

private String password;

/**

* 我的头像,如果没有默认给一张

*/

@Column(name = "face_image")

private String faceImage;

/**

* 昵称

*/

@ApiModelProperty(hidden=true)

private String nickname;

/**

* 我的粉丝数量

*/

@ApiModelProperty(hidden=true)

@Column(name = "fans_counts")

private Integer fansCounts;

/**

* 我关注的人总数

*/

@ApiModelProperty(hidden=true)

@Column(name = "follow_counts")

private Integer followCounts;

/**

* 我接受到的赞美/收藏 的数量

*/

@ApiModelProperty(hidden=true)

@Column(name = "receive_like_counts")

private Integer receiveLikeCounts;

/**

* @return id

*/

public String getId() {

return id;

}

/**

* @param id

*/

public void setId(String id) {

this.id = id;

}

/**

* 获取用户名

*

* @return username - 用户名

*/

public String getUsername() {

return username;

}

/**

* 设置用户名

*

* @param username 用户名

*/

public void setUsername(String username) {

this.username = username;

}

/**

* 获取密码

*

* @return password - 密码

*/

public String getPassword() {

return password;

}

/**

* 设置密码

*

* @param password 密码

*/

public void setPassword(String password) {

this.password = password;

}

/**

* 获取我的头像,如果没有默认给一张

*

* @return face_image - 我的头像,如果没有默认给一张

*/

public String getFaceImage() {

return faceImage;

}

/**

* 设置我的头像,如果没有默认给一张

*

* @param faceImage 我的头像,如果没有默认给一张

*/

public void setFaceImage(String faceImage) {

this.faceImage = faceImage;

}

/**

* 获取昵称

*

* @return nickname - 昵称

*/

public String getNickname() {

return nickname;

}

/**

* 设置昵称

*

* @param nickname 昵称

*/

public void setNickname(String nickname) {

this.nickname = nickname;

}

/**

* 获取我的粉丝数量

*

* @return fans_counts - 我的粉丝数量

*/

public Integer getFansCounts() {

return fansCounts;

}

/**

* 设置我的粉丝数量

*

* @param fansCounts 我的粉丝数量

*/

public void setFansCounts(Integer fansCounts) {

this.fansCounts = fansCounts;

}

/**

* 获取我关注的人总数

*

* @return follow_counts - 我关注的人总数

*/

public Integer getFollowCounts() {

return followCounts;

}

/**

* 设置我关注的人总数

*

* @param followCounts 我关注的人总数

*/

public void setFollowCounts(Integer followCounts) {

this.followCounts = followCounts;

}

/**

* 获取我接受到的赞美/收藏 的数量

*

* @return receive_like_counts - 我接受到的赞美/收藏 的数量

*/

public Integer getReceiveLikeCounts() {

return receiveLikeCounts;

}

/**

* 设置我接受到的赞美/收藏 的数量

*

* @param receiveLikeCounts 我接受到的赞美/收藏 的数量

*/

public void setReceiveLikeCounts(Integer receiveLikeCounts) {

this.receiveLikeCounts = receiveLikeCounts;

}

}

运行项目

报错:没有增加扫描

Action:

Consider defining a bean of type 'com.idig8.mapper.UsersMapper' in your configuration.

增加id自动生成Sid的扫描,在service里面注入了和mapper的扫描

966441cab10af65f414cbdd3d7e00d4e.png

··· java

package com.idig8;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.annotation.ComponentScan;

import tk.mybatis.spring.annotation.MapperScan;

@SpringBootApplication

@MapperScan(basePackages=”com.idig8.mapper”)

@ComponentScan(basePackages= {“com.idig8″,”org.n3r.idworker”})

public class Application {

public static void main(String[] args) {

SpringApplication.run(Application.class, args);

}

}

···

访问网址http://localhost:8081/swagger-ui.html

bf3afa7f685937596d3ea3b829f7d853.png

点击左边的实例,修改内容,点击try it out!

a9c889940ec76fd7952b61c0f41d8fb1.png

返回的结果

0f4581829813ed95532fe5573b13ef02.png

数据库插入正常

7e6d0c9f222a91c724a288272bc3a0b6.png

里面的内容设置成空

e41b5c14966d20fe490164805147ddb8.png

0fe966e4c70d5dc3af521fd398e01491.png

用户名设置成idig8 在试试接口

4771a25cf438e55c0b63769b46d06de5.png

807c7c1471f9719af3073f7f9a3a450e.png

PS:到这里swagger2的文档配置和接口配置,包括错误的的接口测试基本都演示完毕了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值