SpringBoot之RESTful风格

1、RESTful介绍

RESTful是一种软件架构风格,一种时尚!

RESTful架构风格规定,数据的元操作,即CRUD(create, read, update和delete,即数据的增删查改)操作,分别对应于HTTP方法:

GET用来获取资源(查询),

POST用来新建资源(添加),

PUT用来更新资源(修改),

DELETE用来删除资源(删除),

这样就统一了数据操作的接口,仅通过HTTP方法,就可以完成对数据的所有增删查改工作

2、RESTful接口设计

在此我们以用户数据的基本操作来进行接口设计

HTTP协议请求方法

SpringBoot注解

URL

功能说明

POST

@PostMapping

/users

创建一个用户

GET

@GetMapping

/users

查询用户列表

GET

@GetMapping

/users/id

根据id查询一个用户

PUT

@PutMapping

/users/id

根据id更新一个用户

DELETE

@DeleteMapping

/users/id

根据id删除一个用户

3、用户实体bean创建

package com.offcn.po;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

//以下注解在前面我的博客已经做出了详细说明
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Long id;
    private String name;
    private Integer age;  
}

4、创建Controller  UserController

package com.offcn.controllerold;

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

import org.springframework.web.bind.annotation.DeleteMapping;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.PostMapping;

import org.springframework.web.bind.annotation.PutMapping;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import com.offcn.po.User;

@RestController

@RequestMapping("/users-test")

public class UserController {

//Collections.synchronizedList线程安全

private List<User> listUser=Collections.synchronizedList(new ArrayList<User>());

/***

* 获取全部用户信息

* @return

*/

@GetMapping("/")

public List<User> getUserList(){

return listUser;

}

/***

* 新增用户

* @param user

* @return

*/

@PostMapping("/")

public String createUser(User user) {

listUser.add(user);

return "success";

}

/***

* 获取指定id用户信息

* @param id

* @return

*/

@GetMapping("/{id}")

public User getUser(@PathVariable("id")Long id) {

for (User user : listUser) {

if(user.getId()==id) {

return user;

}

}

return null;

}

/**

* 更新指定id用户信息

* @param id

* @param user

* @return

*/

@PutMapping("/{id}")

public String updateUser(@PathVariable("id") Long id,User user) {

for (User user2 : listUser) {

if(user2.getId()==id) {

user2.setName(user.getName());

user2.setAge(user.getAge());

}

}

return "success";

}

/***

* 删除指定id用户

* @param id

* @return

*/

@DeleteMapping("/{id}")

public String deleteUser(@PathVariable("id") Long id) {

listUser.remove(getUser(id));

return "success";

}

}

5、Postman测试RESTful接口

(1)、新增用户

post      http://localhost:8080/users/

(2)、获取全部用户信息

get      http://localhost:8080/users/

(3)、获取指定id用户信息

get      http://localhost:8080/users/id

(4)、更新指定id用户信息

put      http://localhost:8080/users/id

(5)、删除指定id用户信息

delete      http://localhost:8080/users/id

SpringBoot之RESTful风格的更多相关文章

  1. java框架之SpringBoot(6)-Restful风格的CRUD示例

    准备 环境 IDE:Idea SpringBoot版本:1.5.19 UI:BootStrap 4 模板引擎:thymeleaf 3 效果:Restful 风格 CRUD 功能的 Demo 依赖 &l ...

  2. 使用SpringBoot编写Restful风格接口

    一.简介    Restful是一种对url进行规范的编码风格,通常一个网址对应一个资源,访问形式类似http://xxx.com/xx/{id}/{id}. 举个栗子,当我们在某购物网站上买手机时会 ...

  3. Eclipse下利用Maven创建SpringBoot的Restful风格程序

    参考文章:https://spring.io/guides/gs/rest-service/ 中文翻译:https://blog.dubby.cn/detail.html?id=9040 1.目标是什 ...

  4. SpringBoot之RESTFul风格的接口调用(jQuery-Ajax)

    一.Get $.ajax({ type: "get", url: "url地址", async: true, dataType:"json" ...

  5. springboot的restful风格获取请求中携带的参数

    http://localhost:8080/emp/1 有以上请求,我们controller要怎么获取请求中传递的参数1呢? 通过PathVariable注解,如下: @DeleteMapping(& ...

  6. SpringBoot实战(一)之构建RestFul风格

    RestFul风格是一种非常流行的架构风格,相关实战可以参考我的这篇博客:SSM框架之RestFul示例 论文可参考:https://www.ics.uci.edu/~fielding/pubs/di ...

  7. SpringBoot整合Redis使用Restful风格实现CRUD功能

    前言 本篇文章主要介绍的是SpringBoot整合Redis,使用Restful风格实现的CRUD功能. Redis 介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-valu ...

  8. SpringBoot RestFul风格API接口开发

    本文介绍在使用springBoot如何进行Restful Api接口的开发及相关注解已经参数传递如何处理. 一.概念: REST全称是Representational State Transfer,中 ...

  9. 使用RESTful风格整合springboot+mybatis

    说明: 本文是springboot和mybatis的整合,Controller层使用的是RESTful风格,数据连接池使用的是c3p0,通过postman进行测试 项目结构如下: 1.引入pom.xm ...

随机推荐

  1. Xamarin移动开发备忘

    vs2017下: 1.debug用于本地生成和调试,release用于发布.区别主要在于: 安卓项目的生成选项属性中,开发者模式release是不勾的,而且高级里的cpu不同(debug是x86,re ...

  2. Java异常相关知识总结

    异常: 概述:java程序运行过程中出现的错误 常见的异常: StackOverflowError ArrayIndexOutOfBoundsException NullPointerExceptio ...

  3. CSS常用布局方式-两列布局、三列布局

    CSS基础 2.几种布局方式1)table布局 当年主流的布局方式,第一种是通过table tr td布局 示例: <style type="text/css"> ta ...

  4. React + Ts 实现三子棋小游戏

    在这里阅读效果更佳 还记得当年和同桌在草稿纸上下三子棋的时光吗 今天我们就用代码来重温一下年少(假设你有react基础,没有也行,只要你会三大框架的任意一种,上手react不难) 游戏规则 双方各执一 ...

  5. Windows+Qt使用gRPC

    上篇文章<Windows+VS2017使用gRPC>编译出了Windows下可用的gRPC静态lib库文件,在此基础上要想在Qt上使用,需要使用MSVC2017 64bit构建组件进行构建 ...

  6. 智能社javascript

    http://www.chuanke.com/?mod=student&act=study&courseid=91706

  7. element-ui的tag组件关闭事件失效的原因

    问题如上,原因是忘了加上一个函数 @close="handleClose(tag)" <el-tag :key="tag" v-for="tag ...

  8. VMware虚拟机可与Win10物理机互ping并可访问互联网的设置方法

     一.系统环境: VMware 15.Windows 10 1903.Windows 7 虚拟机 二.具体步骤: 1.Win10物理机,控制面板-所有控制面板项-网络连接-物理网卡适配器右键-属性-共 ...

  9. IDEA使用maven搭建spring项目

    spring框架 Spring框架是由于软件开发的复杂性而创建的.Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情.然而,Spring的用途不仅仅限于服务器端的开发.从简单 ...

  10. 02-MySQL 介绍和安装

    MySQL 介绍和安装 1.什么是数据? 数据: 文字.图片.视频...人类认知的数据表现方式 计算机: 二进制.16进制的机器语言 基于数据的重要性和复杂性的不同,我们可能有不同的管理方式. 哪些数 ...