「小程序JAVA实战」swagger2的使用与接口测试(34)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了「小程序JAVA实战」swagger2的使用与接口测试(34),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含9909字,纯文字阅读大概需要15分钟。
内容图文
![「小程序JAVA实战」swagger2的使用与接口测试(34)](/upload/InfoBanner/zyjiaocheng/738/545d1ccc9f2e4ebb82368fbf5d7f5be3.jpg)
我们已经开发完了一个用户注册的接口,但是我们并没有测试也不知道里面哪里忽略了,有什么问题,先讲下下swagger2,然后集成到spring boot这个项目中。源码:https://github.com/limingios/wxProgram.git 中的wx-springboot
swagger2
介绍
swagger2 是可以构建一个非常强大的,是个非常好用的工具也是个非常好用的插件。
可以生成文档形式的api并提供给不同的团队
便于自测,也便于领导查阅任务量。
无需过多冗余的word文档。保证文档是最新的。
使用方法
在spring boot common中pom中引入
<!-- swagger2 配置 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.4.0</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.4.0</version> </dependency>
添加swagger2的配置文件
在spring boot api中加入java类
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<Parameter> pars = new ArrayList<Parameter>(); 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的扫描
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
点击左边的实例,修改内容,点击try it out!
返回的结果
数据库插入正常
里面的内容设置成空
用户名设置成idig8 在试试接口
PS:到这里swagger2的文档配置和接口配置,包括错误的的接口测试基本都演示完毕了。
内容总结
以上是互联网集市为您收集整理的「小程序JAVA实战」swagger2的使用与接口测试(34)全部内容,希望文章能够帮你解决「小程序JAVA实战」swagger2的使用与接口测试(34)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。