【JAVA】SpringMVC+swagger+restFul整合及对象传参

先明确,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 即可,



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值