Spring Boot REST
- 资源(Resources)
所谓资源,就是网络上一个实体,或者是网络上一个具体信息。他可以是一段文本,一张图片,一种服务,总之是一个具体的实体。可以用一个URI(统一资源定位符)指向它,每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以,因此URI就成了每一个资源的地址或者独一无二的识别符。 - 表现层 (Representation)
资源是一种信息实体,它可以有多种表现形式。把资源具体呈现出来的形式称为它的表现层。比如,文本可以用 txt 格式表现,也可以用 HTML 格式、XML、JSON,甚至可以采用二进制格式。 - 状态转化(State Transfer)
访问一个网站,就代表了客户端和服务器的一个互动过程。这个过程中,势必设计数据和状态的改变。
HTTP协议是一个无状态互联网通信协议,这意味着所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生状态转化。而这种转化是建立在表现层之上的,所以就是表现层状态转化。
客户端用到的手段只能是HTTP协议。HTTP协议里有5个常用的表示操作方式的动词:GET、POST、PUT、DELETE、PATCH。它们分别对应5种基本操作:
GET 用来获取资源
POST 用来新建资源
PUT 用来更新资源
DELETE 用来删除资源
PATCH 用来更新资源的部分属性
URI 是同一资源标识符,URL是统一资源定位符
REST 风格的构架
现在流行的各种Web框架,包括Spring Boot 都支持 REST 开发,REST 并非是一种技术或者规范,而是一种构架风格。它包括了REST构架中如何标识资源,如何标识操作接口以及操作版本,如何标识操作的结果等,主要内容:
- 使用 api 作为 Web 上下文
http://localhost/api - 增加版本标识
http://localhost/api/v1.1 - 标识资源
http://localhost/api/v1.1/user REST 中的HTTP Method
GET 用来获取资源
POST 用来新建资源
PUT 用来更新资源
DELETE 用来删除资源
PATCH 用来更新资源的部分属性在业务系统中,删除往往并不是指的物理删除,而是逻辑删除,资源通常仍然在数据库中,只是状态设置为删除状态
REST 中的 HTTP Status
服务器向客户端返回 HTTP Status 以表示操作是否成功
1、200 OK,用户请求成功。
2、400 错误的请求
3、404 NOT Found 用户发出请求针对的资源不存在
4、405 用来访问本页面的 HTTP Method 不被允许
5、406 表示无法使用请求内容特性来响应请求的资源
6、500 服务器内部错误
Spring Boot REST的更多相关文章
- 玩转spring boot——快速开始
开发环境: IED环境:Eclipse JDK版本:1.8 maven版本:3.3.9 一.创建一个spring boot的mcv web应用程序 打开Eclipse,新建Maven项目 选择quic ...
- 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...
- 玩转spring boot——开篇
很久没写博客了,而这一转眼就是7年.这段时间并不是我没学习东西,而是园友们的技术提高的非常快,这反而让我不知道该写些什么.我做程序已经有十几年之久了,可以说是彻彻底底的“程序老炮”,至于技术怎么样?我 ...
- 玩转spring boot——结合redis
一.准备工作 下载redis的windows版zip包:https://github.com/MSOpenTech/redis/releases 运行redis-server.exe程序 出现黑色窗口 ...
- 玩转spring boot——AOP与表单验证
AOP在大多数的情况下的应用场景是:日志和验证.至于AOP的理论知识我就不做赘述.而AOP的通知类型有好几种,今天的例子我只选一个有代表意义的“环绕通知”来演示. 一.AOP入门 修改“pom.xml ...
- 玩转spring boot——结合JPA入门
参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...
- 玩转spring boot——结合JPA事务
接着上篇 一.准备工作 修改pom.xml文件 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...
- 玩转spring boot——结合AngularJs和JDBC
参考官方例子:http://spring.io/guides/gs/relational-data-access/ 一.项目准备 在建立mysql数据库后新建表“t_order” ; -- ----- ...
- 玩转spring boot——结合jQuery和AngularJs
在上篇的基础上 准备工作: 修改pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=&q ...
- 玩转spring boot——MVC应用
如何快速搭建一个MCV程序? 参照spring官方例子:https://spring.io/guides/gs/serving-web-content/ 一.spring mvc结合thymeleaf ...
随机推荐
- 修改Tomcat窗口名称
做java开发,tomcat可以说是最常用的web容器.但是当开启多个tomcat容器之后,就不太容器轻松区别哪了个dos窗口是跑的哪个web应用了.此时可以给每一个窗口命名: 具体办法是:修改% ...
- CentOS7安装后连不上网络无法使用yum
更新日期:2018年5月31日 笔者今天在本地VMware中安装了CentOS7后,使用yum安装wget的时候发现不能下载,并有下图所示的提示: 于是,笔者就去问度娘,然后就找到了如下各种回复: 1 ...
- Java基础教程(22)--异常
一.什么是异常 异常就是发生在程序的执行期间,破坏程序指令的正常流程的事件.当方法中出现错误时,该方法会创建一个对象并将其交给运行时系统.该对象称为异常对象,它包含有关错误的信息,包括错误的类型和 ...
- Kafka、RabbitMQ、RocketMQ消息中间件的对比
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,目前对Kafka.RabbitMQ.RocketMQ这三个消息中间件做下对比分析. - - k ...
- mybatis循环生成前后缀:mapper.xml的<trim></trim>
*在mapper.xml中<trim prefix="(" suffix=")" suffixOverrides="," prefix ...
- ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除
我们都知道Entity Framework 中不能同时更新多条记录,但是一个老外写的扩展库可以实现此功能EntityFramework.Extended,但是如何是mysql数据库要怎么实现呢 首先实 ...
- Code Signal_10分钟挑战题_constructArray
完成时间3分06秒 Given an integer size, return an array containing each integer from 1 to size in the follo ...
- Springmvc中的HandlerAdaptor执行流程
今天讲解一下在Springmvc中的HandlerAdaptor执行流程,明白这个过程,你就能画出下面的图: 接下来我们就来看看具体的实现过程吧. 1.0在DispatcherServlet中找到ge ...
- jquery3.0移除了.load()方法
参考链接:新版jquery去掉load事件了吗? 今天也遇到了这个问题,查了一下文档,确实从3.0开始移除了load.unload.error事件方法.不过依然可以用on方法绑定这些事件. Break ...
- android studio 加载libs
eclipse 项目转 android studio libs 不能加载 导致不能导入 记录下:libs 放在和src 同路径 dependencies:增加 compile files('libs ...