用postman测试接口很方便,还有种就是在线接口测试,比如swagger。
现在介绍swagger在ssm及springboot中配置
一 ssm中swagger配置
(1)在pom中配置依赖
<!-- swagger start -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
<!-- swagger end -->
(2)直接配置swagger
(a)创建SwagConfig
package com.wdq.swaggerconfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableWebMvc
@EnableSwagger2
@Configuration
public class SwagConfig {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.wdq.controller")) // 注意修改此处的包名
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("接口列表 v1.1.0") // 任意,请稍微规范点
.description("接口测试") // 任意,请稍微规范点
.termsOfServiceUrl("http://localhost:8080/swagger-ui.html") // 将“url”换成自己的ip:port
.contact("wdq") // 无所谓(这里是作者的别称)
.version("1.1.0")
.build();
}
}
(b)创建Config
package com.wdq.swaggerconfig;
import java.util.ResourceBundle;
public class Config {
public static Object object=new Object();
public static Config config=null;
public static ResourceBundle rb=null;//读取资源文件的类
public static final String File_Name="merchantInfo";
public Config(){
rb=ResourceBundle.getBundle(File_Name);
}
public static Config getInstance(){
synchronized(object){
if(config==null){
config=new Config();
}
return config;
}
}
public String getValue(String key) {
return (rb.getString(key));
}
// public static void main(String[] args) {
// System.out.println("begin:");
// System.out.println(Config.getInstance().getValue("p1_MerId"));
// System.out.println(Config.getInstance().getValue("privateKey"));
// System.out.println(Config.getInstance().getValue("payurl")+'\n'
// +Config.getInstance().getValue("queryurl"));
//
// }
}
(3) 在controller层中接口上加注解
package com.wdq.controller;
import com.wdq.utils.constants.Constant;
import com.wdq.utils.constants.Result;
import com.wdq.vo.ConfigVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@Api(value = "测试API", description = "测试swag接口")
@RestController
@RequestMapping("test")
public class TestController {
@Autowired
private ConfigVo configVo;
@ApiOperation(httpMethod="POST", value="测试接口")
@RequestMapping(value = "test1",method = RequestMethod.POST)
public Result test(){
Result result = new Result();
result.setCode(Constant.ResultCode.SUCCESS);
result.setDescription(Constant.ResultDesc.SELECT_SUCCESS);
result.setDetail(configVo.getTestInfo());
return result;
}
}
(4)打开SwagConfig中配置的路径
下面展示效果,并不对应上面的配置。
(6)展示目录结构
二.springboot中配置
(1)同上,在pox文件中导入jar包
(2)同上,配置SwagConfig
(3)配置跨域等内容
package com.wdq.demo.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMVCConfig extends WebMvcConfigurerAdapter {
//允许swagger的静态资源加载
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
//解决跨域问题
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**");
}
}
(4)同上,在controller层接口加上注解
(5)效果图同上
(6)展示目录结构