REST与RESTful学习
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了REST与RESTful学习相关的知识,希望对你有一定的参考价值。
1 什么是REST?
1.1 REST的概念
REST (Representational State Transfer):表述性状态转移,即资源在网络中以某种表现形式进行状态转移。2000年,由Roy Thomas Fielding在他的博士论文中提出。REST定义了一种互联网软件的架构原则。因此,REST也可以说是一种架构风格。
1.2 REST的原则
网络上的所有事物都可以抽象为资源
每个资源都有唯一的资源标识符
同一个资源具有多种表现形式(xml, json等)
对资源的各种操作不会改变其资源标识符
对资源的所有操作都是无状态的
2 什么是RESTful?
2.1 RESTful的概念
RESTful:遵守了REST原则的web服务。REST式的web服务是一种ROA(The Resource-Oriented Architecture,面向资源的架构),资源(Resource)是核心。
互联网中,客户端与服务端的交互,传递的只是资源的表述。上网的过程就是调用资源的URI,来获取资源不同表现形式的过程。这种互动只能使用无状态的HTTP协议。因此,服务端必须保存所有的状态。客户端可以使用HTTP的操作,如GET/POST/PUT/DELETE,使服务器上的资源发生状态转化(State Transfer),即表述性状态转移。
URI(Uniform Resource Identifier):统一资源标识符,包含URL(Uniform Resource Locator,统一资源定位符)和URN(Universal Resource Name,统一资源名称)。
2.2 RESTful的运用
以SpringBoot为例,它全面支持开发RESTful程序,通过不同的注解支持不同的请求:
@GetMapping:处理GET请求,查询资源;br/>@PostMapping:处理POST请求,创建资源;
@PutMapping:处理PUT请求,替换资源;br/>@PatchMapping:处理PATCH请求,部分修改资源;
@DeleteMapping:处理DELETE请求,删除资源。br/>在Controller中,映射参数的注解:
@PathVariable:用于接收URL路径上的参数,如URL/1;
@ModelAttribute:用于接收URL?后的参数,如URL?id=1&name=ace,然后直接转换为实体对象。
示例1:
示例2:
以上是关于REST与RESTful学习的主要内容,如果未能解决你的问题,请参考以下文章