REST面向资源架构 RESTful架构
REST基础概念:
- 在REST中的一切都被认为是一种资源。
- 每个资源由URI标识。
- 使用统一的接口。处理资源使用POST,GET,PUT,DELETE操作类似创建,读取,更新和删除(CRUD)操作。
- 无状态。每个请求是一个独立的请求。从客户端到服务器的每个请求都必须包含所有必要的信息,以便于理解。
- 通信都是通过展现。例如XML,JSON
以状态为角度,提出将状态移植到客户端处理的新思路。 提出一个既适于客户端应用又适于服务端的应用的、统一的Web视图。适合B/S C/S S/S。 HTTP客户端与HTTP服务器之间的差别,对架构来说无所谓。一个软件应可以既充当Web客户端又充当Web服务器,而无须采用两套完全不同的APIs。
提供资源操作方法的统一:POST, GET, PUT, DELETE ,以超文本或超媒体驱动(hypertext/Hypermedia)的状态转移是REST架构核心。 操作带来状态变化,状态转移遍历使用链接导航方式实现。
如下图:首先通过GET方法访问/well-known-uri(1)获得当前所有资源(2),然后选择其中一个资源名FooService通过Get方法访问/well-known-uri/foo(3),这样得到foo下的资源列表。
foo可能是一个领域模型或其他代表业务核心的资源,假设foo是订单,用户如果希望改变订单状态,比如撤销订单,一旦点按撤销订单按钮,客户端将向/well-known-uri/foo/reverse发出PUT命令(5),代表撤销订单,这其实一个修改订单状态的命令。
客户端再次发出GET命令(6),获得状态已经改变的结果。
值得注意的是,当发出PUT命令后,不是通常由服务器端立即返回业务操作结果,而是返回Http的200,表示PUT操作完成,具体业务结果必须由客户端再次根据第三步获得的资源列表中URI资源,再次由客户端发出查询命令获得(6)。
https://www.jdon.com/rest.html
REST面向资源架构 RESTful架构的更多相关文章
- RESTful架构(Representational State Transfer资源表现层状态转换)
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- 论单页Web应用和RESTful架构
单页Web应用 概述 单页Web应用并不是突然诞生的一门新技术,而是web展示的一种新的尝试.它将所有的动作局限于一个Web页面,在加载站点首页的时候就加载站点需要的JavaScript和CSS.单页 ...
- Web应用和RESTful架构
Web应用和RESTful架构 单页Web应用 概述 单页Web应用并不是突然诞生的一门新技术,而是web展示的一种新的尝试.它将所有的动作局限于一个Web页面,在加载站点首页的时候就加载站点需要的J ...
- RESTful架构详解
什么是REST REST全称是Representational State Transfer,中文意思是表述性状态转移,它首次出现在2000年Roy Fielding的博士论文中.Roy Fieldi ...
- RESTful 架构详解
RESTful 架构详解 分类 编程技术 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次 ...
- 【菜鸟】RESTful 架构详解
RESTful 架构详解 分类 编程技术 1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次 ...
- 【转】Restful架构详解
1. 什么是REST REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的 ...
- restful架构风格设计准则(二)以资源为中心,一个url
读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 1.REST是一种架构风格,其核心是面向资源,简化设计,降低开发的复杂性 ...
- “RESTful架构”相关资料收藏
[阮一峰]理解RESTful架构 [InfoQ]深入浅出REST 用于构建 RESTful Web 服务的多层架构 REST会是SOA的未来吗? Restful 与 SOA 的关系? 回答1: 注意r ...
随机推荐
- 在Linux x86_64环境下编译memcached
Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached ...
- jzoj4916. 【GDOI2017模拟12.9】完全背包问题 (背包+最短路)
题面 题解 考场上蠢了--这么简单的东西都想不到-- 首先排序加去重. 先来考虑一下,形如 \[a_1x_1+a_2x_2+...a_nx_n=w,a_1<a_2<...<a_n,x ...
- phaser小游戏框架学习(一)
这两天由于项目的需要,所以简单学了一下phaser框架. 官网:http://phaser.io/ 还有一个phaser小站,是中文的网站,但是内容不如英文文档全,大家也可以去看这个网站,需要查阅AP ...
- error : Could not load UI satellite dll 'TrackerUI.dll'. Make sure it exists in an LCID subdirectory of 'C:\Program Files (x86)\MSBuild\12.0\bin\'.
原因 VS2013 + QT环境部署好后, 又安装了VS2015\ 解决方案: 在另一台电脑里重装VS2013, 并将 C:\Program Files (x86)\MSBuild\12.0\B ...
- Android点击事件(click button)的四种写法
在学习android开发和测试的时候发现不同的人对于click事件的写法是不一样的,上网查了一下,发现有四种写法,于是想比较一下四种方法的不同 第一种方法:匿名内部类 代码: package com. ...
- mysql 字段类型VARCHAR转换成DECIMAL
在我们写代码的实际业务中,有时候实体类用的是String,数据库中自然是VARCHAR类型,但是如果这个实体的属性值放的是数字类型,你查询的时候又需要对它进行排序.sql怎么写呢. 别担心mysql提 ...
- Github如何在Linux系统下创建本地仓库
一.电脑上安装 Git Ubuntu安装GIt: apt-get install git 查看版本信息: git version 配置Git用户信息 输入: git config --glo ...
- P2903 [USACO08MAR]麻烦的干草打包机The Loathesome Hay Baler
传送门 题目问的是从出发点一直跑到终点的一条链上所有齿轮的速度和 其他的不用考虑 直接搜就好了 注意求的是绝对值之和,不是和的绝对值,所以不用考虑方向问题 注意 N<=1050 数组不要只开10 ...
- 2018年 CCPC 网络赛 赛后总结
历程:由于只是网络赛,所以今天就三开了.一开始的看题我看了d题,zz和jsw从头尾看起来,发现c题似乎可做,和费马大定理有关,于是和zz一起马上找如何计算勾股数的方法,比较慢的A掉了,而jsw此时看了 ...
- 从M进制转换为N进制
/// <summary> /// 从M进制转换为N进制 /// </summary> internal class MBase2NBase { /// <summary ...