基于RESTful的CRUD

1.什么是RESTful

1.1.REST的由来

Roy Fielding博士提出了基于REST(Representational State Transfer)风格的软件架构模式,成为一种设计Web API的模式。(同时取代了SOAP的地位)
REST基于基于HTTP进行通信,并使用XML格式定义或JSON格式定义作为载体传输消息和数据,使得所有功能都已一种标准化Web服务的形式向外提供服务。这样做,能力四线功能代码与界面设计的完全分离,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。

当一个Web应用以API的形式对外提供功能时,整个应用的结构就扩展为:
服务(资源+资源) + 前端交互(包括:PC、App、嵌入式设备、云服务)

1.2.Rest架构的主要原则

  1. ** 网络上的所有事物都被抽象为资源**
  2. ** 每个资源都有一个唯一的资源标识符**
  3. ** 同一个资源具有多种表现形式(xml,json等)**
  4. ** 对资源的各种操作不会改变资源标识符**
  5. ** 所有的操作都是无状态的**
  6. ** 符合REST原则的架构方式即可称为RESTful**

1.3.基于HTTP通信规范

每个资源都使用 URI (Universal Resource Identifier) 得到一个唯一的地址。所有资源都共享统一的接口,以便在客户端和服务器之间传输状态。
使用的是标准的 HTTP 方法,比如 POSTDELETE、PUT和GET,对应的就是数据的4种基本操作:增删改查的操作。如下图所示:

rest通信方式.jpg

2.RESTful

RESTFUL是一种网络应用程序的设计风格和开发方式。也就是遵守了REST风格的web服务;REST式的web服务是一种ROA面向资源的架构(The Resource-Oriented Architecture)。
其中,URI = /资源名称/资源标识 + HTTP的请求方式表示对应的CRUD操作。
例如:

<!--查询:-->
http://localhost/user/1  HTTP-GET  <!--表示:查询id=1的user-->
http://localhost/users  HTTP-GET  <!--表示:查询所有user-->
<!--添加:-->
http://localhost/user  HTTP-GET     <!--表示:访问添加用户页面-->
http://localhost/user  HTTP-POST     <!--表示:新增一个user-->
<!--修改:-->
http://localhost/user  HTTP-PUT    <!--表示:修改user-->
<!--删除:-->
http://localhost/user/1  HTTP-DELETE    <!--表示:删除id=1的user(采用$.ajax异步删除)-->

实现步骤:

  1. 定义一个UserController,映射以上所有的RESTful资源URI;
  2. IUserService接口中定义功能方法,以便UserController调用后可以实现功能;
  3. 定义User实体,以及UserDao中实现基本的数据库表的增删改查;
  4. UserService调用UserDao,实现IUserService接口所定义的功能方法。
  5. 把静态页面引入Thymeleaf模板引擎的templates中,并把相应的th:href修改为UserControllser中所定义的URI资源路径。
    例如:所有员工的信息展示:
<h2>
    <buttom class="btn btn-sm btn-success">添加用户</buttom>
</h2>
<table>
  <thead>
    <tr>
      <th>用户编号</th>
      <th>用户姓名</th>
      <th>用户密码</th>
      <th>操作</th>
    </tr>
  </thead>
 <tbody>
    <tr th:each="user:${users}">
      <td th:text="${user.id}"></td>
      <td th:text="${user.name}"></td>
      <td th:text="${user.pwd}"></td>
      <td>
          <buttom class="btn btn-sm btn-primary">编辑</buttom>
          <buttom class="btn btn-sm btn-danger">编辑</buttom>
      </td>
    </tr>
  </tbody>
</table>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,340评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,762评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,329评论 0 329
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,678评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,583评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,995评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,493评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,145评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,293评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,250评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,267评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,973评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,556评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,648评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,873评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,257评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,809评论 2 339

推荐阅读更多精彩内容

  • 一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式。”但是在要求详细讲述它所提出的各个约束,以及如...
    时待吾阅读 3,398评论 0 19
  • 从今天开始,我开始学习Retrofit,整体Retrofit内容如下: 1、Retrofit解析1之前哨站——理解...
    隔壁老李头阅读 6,084评论 4 46
  • REST本身是一个高度抽象化的架构风格,因而总是很难对它有一个比较深入且印象深刻的理解。写这篇文章的目的,是自己对...
    vito1994阅读 2,807评论 0 26
  • 转自:http://www.runoob.com/w3cnote/restful-architecture.htm...
    艾尔温阅读 999评论 0 51
  • 暑期培训得 8月17日,是暑期培训的最后一天,也...
    太阳系_5a9a阅读 435评论 2 1