中安消防安全网站建设,com域名注册1元,企业黄页平台,redux wordpress2.接口相关工具
2.1API接口文档利器#xff1a;Swagger
2.1.1Swagger介绍
Swagger 是一个规范和完整的框架#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务
(https://swagger.io/)。 它的主要作用是#xff1a; 使得前后端分离开发更加方便#xff0…2.接口相关工具
2.1API接口文档利器Swagger
2.1.1Swagger介绍
Swagger 是一个规范和完整的框架用于生成、描述、调用和可视化 RESTful 风格的 Web 服务
(https://swagger.io/)。 它的主要作用是 使得前后端分离开发更加方便有利于团队协作 接口的文档在线自动生成降低后端开发人员编写接口文档的负担 功能测试
Spring已经将Swagger纳入自身的标准建立了Spring-swagger项目现在叫Springfox。通过在项目中引入Springfox 即可非常简单快捷的使用Swagger。
2.1.2SpringBoot集成Swagger 在huiminpay-common项目中添加依赖只需要在huiminpay-common中进行配置即可因为其他微服务工程都直接或间接依赖huiminpay-common。 !-- Swagger依赖 --
dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactId
/dependency
dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactId
/dependency在huiminpay-merchant-application工程的config包中添加一个Swagger配置类
package com.huiminpay.merchant.config;import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;Configuration
//此注解控制配置类是否生效,意思是当配置文件中prefix.value的值havingValue的值则生效否则无效
ConditionalOnProperty(prefix swagger,value {enable},havingValue true)
EnableSwagger2
public class SwaggerConfiguration {Beanpublic Docket buildDocket() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(buildApiInfo()).select()// 要扫描的API(Controller)基础包,注意要修改成自己项目的包路径.apis(RequestHandlerSelectors.basePackage(com.huiminpay.merchant.controller))//过滤什么请求.paths(PathSelectors.any()).build();}/*** 构建API基本信息*/private ApiInfo buildApiInfo() {//联系信息Contact contact new Contact(开发者, , );return new ApiInfoBuilder().title(惠民支付-商户应用API文档).description().contact(contact).version(1.0.0).build();}
}添加SpringMVC配置类WebMvcConfig让外部可直接访问Swagger文档
package com.huiminpay.merchant.config;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** author Administrator* version 1.0**/
Configuration
public class WebMvcConfig implements WebMvcConfigurer {/*** 添加静态资源文件外部可以直接访问地址* param registry*/Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {registry.addResourceHandler(/**).addResourceLocations(classpath:/static/);registry.addResourceHandler(swagger-ui.html).addResourceLocations(classpath:/META-INF/resources/);registry.addResourceHandler(/webjars/**).addResourceLocations(classpath:/META-INF/resources/webjars/);//解决swagger2中js无法访问}
}2.1.3Swagger常用注解
在Java类中添加Swagger的注解即可生成Swagger接口文档常用Swagger注解如下 Api修饰整个类描述Controller的作用 ApiOperation描述一个类的一个方法或者说一个接口 ApiParam单个参数的描述信息 ApiModel用对象来接收参数 ApiModelProperty用对象接收参数时描述对象的一个字段 ApiResponseHTTP响应其中1个描述 ApiResponsesHTTP响应整体描述 ApiIgnore使用该注解忽略这个API ApiError 发生错误返回的信息 ApiImplicitParam一个请求参数 ApiImplicitParams多个请求参数的描述信息 ApiImplicitParam属性 属性取值作用paramType查询参数类型path以地址的形式提交数据query直接跟参数完成自动映射赋值body以流的形式提交 仅支持POSTheader参数在request headers 里边提交form以form表单的形式提交 仅支持POSTdataType参数的数据类型 。只作为标志说明并没有实际验证LongStringname接收参数名value接收参数的意义描述required参数是否必填true必填false非必填defaultValue默认值
上边的属性后边编写程序时用到哪个我再详细讲解下边写一个swagger的简单例子我们在MerchantController 中添加Swagger注解代码如下所示 ApiOperation(测试)GetMapping(/hello/{name})public String hello(PathVariable(name) String name) {return hello, name;}ApiOperation(测试)PostMapping(/hi/{name})public String hi(PathVariable(name) String name) {return hi, name;}
2.1.4Swagger测试 启动商户应用和商户中心服务访问http://localhost:57010/merchant/swagger-ui.html 点击其中任意一项即可打开接口详情如下图所示 点击“Try it out”开始测试并录入参数信息然后点击“Execute发送请求执行测试返回结果“hi,李四” Swagger生成API文档的工作原理
1、huiminpay-merchant-application启动时会扫描到SwaggerConfiguration类
2、在此类中指定了扫描包路径com.huiminpay.merchant.controller会找到在此包下及子包下标记有
RestController注解的controller类
3、根据controller类中的Swagger注解生成API文档
**注意**如果第2步扫描包路径有误则会出现swagger页面正常显示但是没有接口信息的情况。
2.2 接口调试利器Postman
Postman是一款功能强大的http接口测试工具使用Postman可以完成http各种请求的功能测试。作为服务器端开发人员当一个业务功能开发完毕后应该用Postman进行功能测试。
1、请自行在本机安装Postman
2、新建集合(建议一个微服务新建一个对应的集合)惠民支付-商户应用 3、在惠民支付-商户应用集合中新建请求Add Request并录入请求信息 填写新建商户接口地址和请求类型后点击Send发送请求
小技巧每个测试都可以进行保存(CtrlS)以便于后续使用。