微信公众平台开发(13)--使用Swagger便于接口调试

简介: 本文目录1. 背景2. 配置pom3. 添加配置类4. 为控制器添加注解5. 调用测试6. 小结

1. 背景

在之前的示例中,我们都是通过访问URL发起测试的,这种方式比较麻烦。


我们可以在SpringBoot中引入Swaager,这样打开Swagger页面就可以直接可视化调试了。


2. 配置pom

在pom.xml中添加如下配置:


<!-- 添加swagger2相关功能 -->

   <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>


3. 添加配置类

通过配置类启用Swagger,并且配置一些基本信息。


@Configuration // 告诉Spring容器,这个类是一个配置类,Spring容器得采用这个类的配置

@EnableSwagger2 // 启用Swagger2功能

public class SwaggerConfig {

/**

 * 配置Swagger2相关的bean

 */

@Bean

public Docket createRestApi() {

 return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("cn"))// com包下所有API都交给Swagger2管理

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

}


/**

 * 此处主要是API文档页面显示信息

 */

private ApiInfo apiInfo() {

 return new ApiInfoBuilder().title("微信接入API") // 标题

   .description("微信公众号、企业微信、微信支付API") // 描述

   .termsOfServiceUrl("https://studyingpanda.blog.csdn.net/") // 服务网址

   .version("1.0") // 版本

   .build();

}

}


4. 为控制器添加注解

依次为之前的自定义菜单、用户管理、客服消息控制器类及方法添加注解,从而生成可视化的API入口。


注意此处为了减少生成的方法数量,将@RequestMapping改为了@PostMapping。


@Api(tags = "自定义菜单API")

@RestController

public class MenuController {

@Autowired

private WxMpService wxMpService;


@ApiOperation(value = "获取自定义菜单")

@PostMapping("/menuGet")

public WxMpMenu menuGet() throws WxErrorException {

 WxMpMenu wxMpMenu = wxMpService.getMenuService().menuGet();

 return wxMpMenu;

}


@ApiOperation(value = "删除自定义菜单")

@PostMapping("/menuDelete")

public boolean menuDelete() throws WxErrorException {

 wxMpService.getMenuService().menuDelete();

 return true;

}


@ApiOperation(value = "创建自定义菜单")

@PostMapping("/menuCreate")

public boolean menuCreate() throws WxErrorException {

 // 菜单

 List<WxMenuButton> buttons = new ArrayList<WxMenuButton>();

 WxMenuButton btn1 = new WxMenuButton();

 btn1.setType("click");

 btn1.setName("查询城市");

 btn1.setKey("QUERY_CITY");

 WxMenuButton btn2 = new WxMenuButton();

 btn2.setType("view");

 btn2.setName("跳转网页");

 btn2.setUrl("http://www.csdn.net");

 buttons.add(btn1);

 buttons.add(btn2);

 // 创建

 WxMenu wxMenu = new WxMenu();

 wxMenu.setButtons(buttons);

 String re = wxMpService.getMenuService().menuCreate(wxMenu);

 System.out.println(re);

 return true;

}

}


@Api(tags = "用户管理API")

@RestController

public class UserController {

@Autowired

private WxMpService wxMpService;


@ApiOperation(value = "获取用户列表")

@PostMapping("/userList")

public WxMpUserList userList() throws WxErrorException {

 WxMpUserList wxUserList = wxMpService.getUserService().userList(null);

 return wxUserList;

}


@ApiOperation(value = "获取用户信息")

@PostMapping("/userInfo")

public WxMpUser userInfo(@RequestParam("openid") String openid) throws WxErrorException {

 String lang = "zh_CN"; // 语言

 WxMpUser user = wxMpService.getUserService().userInfo(openid, lang);

 return user;

}


@ApiOperation(value = "更新用户备注名")

@PostMapping("/userUpdateRemark")

public boolean userUpdateRemark(@RequestParam("openid") String openid, @RequestParam("remark") String remark) throws WxErrorException {

 wxMpService.getUserService().userUpdateRemark(openid, remark);

 return true;

}

}


@Api(tags = "客服消息API")

@RestController

public class KefuMessageController {

@Autowired

private WxMpService wxMpService;


@ApiOperation(value = "更新用户备注名")

@PostMapping("/sendMessage")

public boolean sendMessage(@RequestParam("openid") String openid, @RequestParam("content") String content) throws WxErrorException {

 WxMpKefuMessage message = WxMpKefuMessage.TEXT().toUser(openid).content(content).build();

 wxMpService.getKefuService().sendKefuMessage(message);

 return true;

}

}


5. 调用测试

启动项目,访问http://127.0.0.1/wx-server/swagger-ui.html,然后选择一个接口点击即可测试。


访问结果可视化显示如下:



6. 小结

用了Swagger之后,测试方便了很多,不需要再手工构建URL测试了,直接点击按钮即可。


另外如果有参数,也可以在界面上输入,很方便。

相关文章
|
2月前
|
API
支付系统38-----支付宝支付---统一收单线下交易查询 第一步下单------》发起支付请求,登录,确认支付,查单接口开发,swagger接口全部呈现,
支付系统38-----支付宝支付---统一收单线下交易查询 第一步下单------》发起支付请求,登录,确认支付,查单接口开发,swagger接口全部呈现,
|
16天前
|
JSON 测试技术 API
Python开发解析Swagger文档小工具
文章介绍了如何使用Python开发一个解析Swagger文档的小工具,该工具可以生成符合httprunner测试框架的json/yaml测试用例,同时还能输出Excel文件,以方便测试人员根据不同需求使用。文章提供了详细的开发步骤、环境配置和使用示例,并鼓励读者为该开源项目贡献代码和建议。
20 1
Python开发解析Swagger文档小工具
|
19天前
|
小程序 JavaScript Java
微信小程序+SpringBoot接入后台服务,接口数据来自后端
这篇文章介绍了如何将微信小程序与SpringBoot后端服务进行数据交互,包括后端接口的编写、小程序获取接口数据的方法,以及数据在小程序中的展示。同时,还涉及到了使用Vue搭建后台管理系统,方便数据的查看和管理。
微信小程序+SpringBoot接入后台服务,接口数据来自后端
|
3月前
|
XML JSON 数据安全/隐私保护
如何使用Fiddler抓取APP接口和微信授权网页源代码
Fiddler是一款强大的抓包工具,用于捕获HTTP/HTTPS流量,包括手机APP和微信授权页面的数据。下载安装Fiddler后,需设置电脑代理,如端口8888,并在手机上配置相同代理,确保两者在同一局域网。通过安装Fiddler证书,可解密HTTPS请求。在手机上打开目标应用或网页,Fiddler将显示请求详情,便于接口调试和数据查看。
100 0
如何使用Fiddler抓取APP接口和微信授权网页源代码
|
2月前
|
JSON 数据格式
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
MysbatisPlus-核心功能-IService开发基础业务接口,MysbatisPlus_Restful风格,新增@RequestBody指定是为了接收Json数据的,使用swagger必须注解
|
2月前
|
XML Java 数据格式
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付20---创建案例项目--集成Mybatis-plus的补充,target下只有接口的编译文件,xml文件了,添加日志的写法
支付系统----微信支付16----创建案例项目-引入Swagger
支付系统----微信支付16----创建案例项目-引入Swagger
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
支付系统---微信支付14----创建案例项目---介绍,第二步引入Swagger,接口文档和测试页面生成工具,定义统一结果的目的是让结果变得更加规范,以上就是谷粒项目的几个过程
|
2月前
|
移动开发 JavaScript
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
thinkPHP5.0开发微信H5页面分享接口signature验证失败,signature与微信 JS 接口签名校验工具返回结果不一致
67 0
|
3月前
|
API 开发工具
企业微信SDK接口API调用-触发推送企业微信微信好友
企业微信SDK接口API调用-触发推送企业微信微信好友

热门文章

最新文章

下一篇
DDNS