Spring(RESTFul风格)

RESTFul

1 什么是RESTFul

  • RESTFul编写程序一种风格,不是协议。

  • 对HTTP协议诠释(落地方案),请求方式的落地

    http协议共7种,常见4种,最长使用2种
    get
    post
    put
    delete
    
  • RESTFul对服务器程序操作,进行约定。

    • 每一个操作组成:请求路径 + 请求方式 。 (一个路径,因为请求方式的不同,可以完成不同操作)
    • 数据传输方式:JSON数据
    // 传统开发路径
    查询:http://localhost:8080/user/selectAll.action
    添加:http://localhost:8080/user/addUser.action
    修改:http://localhost:8080/user/updateUser.action
    删除:http://localhost:8080/user/deleteUser.action
    
    // RESTFul风格路径
    查询:get    http://localhost:8080/user/
    详情:get    http://localhost:8080/user/123
    添加:post   http://localhost:8080/user/
    修改:put    http://localhost:8080/user/
    删除:delete http://localhost:8080/user/123
    

2 使用

2.1 步骤

  • 步骤1:创建新项目 (day15_mvc_restful)

  • 步骤2:导入jar包:spring 、spring mvc、jackson、mybatis

  • 步骤3:配置类,

    • spring mvc 配置
    • 启动配置类,前端控制器没有扩展名,由 *.action 改成 /
  • 步骤4:编写controller,完成增删改查

    • 4.1 类级别:

      @Controller@ResponseBody		
      //--> 合成注入 
      @RestController
      
    • 4.2 方法级别:@RequestMapping(value=“路径”, method=RequestMethod.GET /POST/PUT/DELETE)

      //传统写法
      @RequestMapping(value="路径", method=RequestMethod.GET /POST/PUT/DELETE)
      
      //-->各种请求方式的简化写法
      @GetMapping
      @PostMapping
      @PutMapping
      @DeleteMapping
      
      @PathVariable		//用于获得路径参数
      
    • 4.3 方法返回值

      //根据约束,基于RESTFul风格,方法的的返回值,建议使用 ResponseEntity 类型
      // ResponseEntity 用于封装返回值信息,含状态码
      // 返回200状态码,ResponseEntity.ok("添加成功");
      // 其他状态码,new ResponseEntity<>("添加成功", HttpStatus.UNAUTHORIZED)
      

2.2 实现

  • 配置类

在这里插入图片描述

  • 控制器
package com.czxy.rest.controller;

import com.czxy.rest.domain.User;
import io.swagger.models.Response;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author 桐叔
 * @email liangtong@itcast.cn
 */
@RestController
@RequestMapping("/user")
public class UserController {
    /**
     * 查询所有
     * @return
     */
    //等效 @RequestMapping(method = RequestMethod.GET)
    @GetMapping
    public ResponseEntity<List<User>> list() {
        List<User> list = new ArrayList<>();
        list.add(new User(1,"jack","1234", new Date()));
        list.add(new User(2,"肉丝","6666", new Date()));
        list.add(new User(3,"tom","loverose", new Date()));

        return ResponseEntity.ok(list);
    }

    /**
     * 添加用户
     * @param user
     * @return
     */
    @PostMapping(produces = "application/json;charset=UTF-8")
    public ResponseEntity add(@RequestBody User user) {
        System.out.println(user);
        return ResponseEntity.ok("添加成功");
    }

    /**
     *
     * @param user
     * @return
     */
    @PutMapping
    public ResponseEntity<String> update(@RequestBody User user) {
        System.out.println(user);
        return ResponseEntity.ok("update success");
    }

    /**
     * 删除
     * @param userId
     * @return
     */
    @DeleteMapping("/{id}")
    public ResponseEntity<String> delete(@PathVariable("id") String userId ) {
        System.out.println(userId);
        return ResponseEntity.ok("delete success");
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值