SpringMVC——REST风格

目录

  • 一、REST简介
  • 二、RESTful快速开发(标准开发)
  • 三、基于RESTful页面数据交互
    • 后台接口开发
    • 页面访问处理

一、REST简介

REST(Representational State Transfer),表现形式状态转换
◆ 传统风格资源描述形式
查看某个用户的信息 —— http://localhost/user/getById?id=1
保存用户信息 —— http://localhost/user/saveUser
◆REST风格(描述资源的一种访问形式)
http://localhost/user/1
http://localhost/user

● 优点
◆ 隐藏资源访问行为,无法通过地址得知对资源是何种操作
◆ 书写简单

● 按照REST风格访问资源时使用行为动作区分对资源进行了何种操作
SpringMVC——REST风格_第1张图片
SpringMVN支持8种,常用4种(GET、POST、PUT、DELETE)

◆ http://localhost/users —— 查询全部用户信息 ➠ GET(查询)
◆ http://localhost/users/1 —— 查询指定用户信息 ➠ GET(查询)
◆ http://localhost/users —— 添加用户信息 ➠ POST(新增/保存)
◆ http://localhost/users —— 修改用户信息 ➠ PUT(修改/更新)
◆ http://localhost/users/1 —— 删除用户信息 ➠ DELETE(删除)

【注意事项】上述行为是约定方式,约定不是规范,可以打破(eg:POST可以指保存也可以指新增),所以称为REST风格,而不是REST规范。描述模块的名称通常使用复数,也就是加s的格式描述,表示此类资源,而非单个资源,例如:users、books、accounts......

● 按照REST风格对资源进行访问称为RESTful

二、RESTful快速开发(标准开发)

package com.GY.conntroller;
import com.GY.domain.User;
import org.springframework.web.bind.annotation.*;

@RestController   //【设置当前控制器类为RESTful风格,等同于@Controller+@ResponseBody两个注解组合功能】
@RequestMapping("/users")
public class UserController {

    //添加
    /*@RequestMapping(method = RequestMethod.POST)*/
    @PostMapping
    public String save(){
        System.out.println("save  user...... ");
        return "{'module':'user  save'}";
    }

    //删除
    //@PathVariable:参数来自于请求路径(路径变量)
    @DeleteMapping("/{id}")
    public String delete(@PathVariable Integer id){
        System.out.println("delete  user...... "+id);
        return "{'module':'user  delete'}";
    }

    //修改
   /* @RequestMapping(method = RequestMethod.PUT)*/
    @PutMapping
    public  String update(@RequestBody User user){
        System.out.println("update  user...... "+user);
        return "{'module':'user  update'}";
}

    //查询一个
   /* @RequestMapping(value ="/{id}",method = RequestMethod.GET)*/
    @GetMapping("/{id}")
    public String getById(@PathVariable Integer id){
        System.out.println("getById  user...... "+id);
        return "{'module':'user  getById'}";

    }

    //查询全部
    @RequestMapping(method = RequestMethod.GET)
    @GetMapping
    public  String getAll(){
        System.out.println("getAll  user...... ");
        return "{'module':'user  getAll'}";
    }
}

三、基于RESTful页面数据交互

后台接口开发

实体类
SpringMVC——REST风格_第2张图片

控制器类

package com.GY.conntroller;
import com.GY.domain.User;
import org.springframework.web.bind.annotation.*;

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

@RestController   //【使用@RestController代替(@Controller+@ResponseBody)】
@RequestMapping("/users")

public class UserController {

    //保存
    /*@RequestMapping(method = RequestMethod.POST)*/
    @PostMapping
    public String save(User user){
        System.out.println("save  user==>"+user);
        return "{'module':'user  save'}";
    }



    //获取全部
    @GetMapping
    public List<User> getAll(){
        User user1=new User();
        user1.setNo(01);
        user1.setName("GY");
        user1.setMoney(254.1);

        User user2=new User();
        user2.setNo(02);
        user2.setName("WW");
        user2.setMoney(1099.8);
        
        List<User>users=new ArrayList<>();
        users.add(user1);
        users.add(user2);

        return users;
    }
}

在Apifox中创建请求(测试)
①Post请求
SpringMVC——REST风格_第3张图片
保存成功
在这里插入图片描述
①Get请求
SpringMVC——REST风格_第4张图片
获取数据成功
在这里插入图片描述

页面访问处理

●先做后台功能,开发接口并调通数据

●再做页面异步调用,确认功能可以正常访问

●最后完成页面数据展示

●放行静态资源访问

你可能感兴趣的:(Spring全家桶,restful,java,spring)