入门必读

一. 什么是REST ?

  • REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

  • 在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎、微软提供的Web服务也是REST风格的。

二. 怎样用通俗的语言解释REST,以及RESTful?

  • REST描述的是在网络中client和server的一种交互形式;REST本身不实用,实用的是如何设计 RESTful API(REST风格的网络接口);

  • Server和Client之间传递某资源的一个表现形式,比如用JSON,XML传输文本,或者用JPG,WebP传输图片,压缩HTTP传输时的数据等;

  • Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心;例如:

    http://api.qc.com/v1/newsfeed: 获取某人的新鲜;
    http://api.qc.com/v1/friends: 获取某人的好友列表;
    http://api.qc.com/v1/profile: 获取某人的详细信息;
    
  • 用HTTP协议里的动词来实现资源的添加,修改,删除等操作,即通过HTTP动词来实现资源的状态扭转:

    GET 用来获取资源,
    POST 用来新建/更新资源,
    PUT 用来更新资源,
    DELETE 用来删除资源。
    

三. RestTemplate 概念简介

  • RestTemplate 是从 Spring3.0 开始支持的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中都得到了实现。

参考地址:

百度:https://baike.baidu.com/item/rest/6330506?fr=aladdin
知乎:https://www.zhihu.com/question/28557115
CSDN:https://blog.csdn.net/jinjiniao1/article/details/100849237