先明确,restFul只是一种风格,用不用都无所谓,只不过你用了之后就会更严谨,更规范,
swagger-ui是一套接口的描述UI,这个接口干嘛,什么参数,什么方法,很明确;
而且整合swagger之后,前后端接口交互更加简单明了。
get select
post insert
put update
delete delete
工具类:
package com.construn.procure.util;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
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
@EnableSwagger2
@ComponentScan(basePackages = {"com.construn.procure.controller"})
@EnableWebMvc
public class SwaggerConfig extends WebMvcConfigurationSupport {
@Bean
public Docket customDocket() {
//
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
}
private ApiInfo apiInfo() {
Contact contact = new Contact("ksc", "https://www.construn.cn", "ksc@163.com");
return new ApiInfo("procure test Api",//大标题 title
"Swagger测试demo",//小标题
"0.0.1",//版本
"www.baidu.com",//termsOfServiceUrl
contact,//作者
"Blog",//链接显示文字
"https://www.baidu.me"//网站链接
);
}
}
下载一套swagger-ui 放在web-inf下面,在xml新增
<mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/" cache-period="31556926"/>
<mvc:default-servlet-handler />
<bean class="com.construn.procure.util.SwaggerConfig" />
controller 用法
package com.construn.procure.controller;
import com.construn.procure.common.ResponseObj;
import com.construn.procure.entity.User;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
/**
* Created with IntelliJ IDEA.
*
* @author: zhangenke
* @Date: 2018/6/5 on 下午2:06
* @description: 用户模块
*/
@Controller
@RequestMapping("user")
@Api(tags = "一、用户")
public class UserController {
public UserController() {
}
@GetMapping("login")
@ResponseBody
@ApiOperation(value = "登陆")
public ResponseObj login(HttpServletRequest request,
@ApiParam(value = "账号") @RequestParam(name = "tel") String tel,
@ApiParam(value = "密码") @RequestParam(name = "pwd") String pwd
) {
String info = "admin";
if (info.equals(tel) && info.equals(pwd)) {
return ResponseObj.getSuccessInfo("登陆成功");
}
return ResponseObj.getErrorInfo("密码错误");
}
@GetMapping("role/{userId}")
@ResponseBody
@ApiOperation(value = "获取用户权限")
public ResponseObj getRoleByUserId(HttpServletRequest request,
@ApiParam(value = "用户ID") @PathVariable("userId") String userId) {
return ResponseObj.getSuccessInfo("OK");
}
@PutMapping("userPwd/{userId}")
@ResponseBody
@ApiOperation(value = "修改密码")
public ResponseObj updatePwd(HttpServletRequest request,
@ApiParam(value = "用户ID") @PathVariable("userId") String userId) {
return ResponseObj.getSuccessInfo("OK");
}
@PutMapping("user/{userId}")
@ResponseBody
@ApiOperation(value = "更新个人信息")
public ResponseObj updateUser(HttpServletRequest request,
@ApiParam(value = "用户唯一ID") @PathVariable("userId") String userId,
@ApiParam(value = "用户对象") @RequestBody User user) {
return ResponseObj.getSuccessInfo("OK");
}
@GetMapping("user/{userId}")
@ResponseBody
@ApiOperation(value = "获取个人信息")
public ResponseObj userMsg(HttpServletRequest request,
@ApiParam(value = "用户唯一ID") @PathVariable("userId") String userId) {
return ResponseObj.getSuccessInfo("OK");
}
}
启动tomcat 地址栏输入
http://localhost:8080/procure/swagger/index.html
可以看到,所有方法,很明确;
而且,后端测试也很简单,点击 try it out 输入参数 点击execute 即可,