Restful是基于网络的软件系统架构风格。其优先考虑分布性和扩展性,而不是安全、错误处理、对象映射。

所以Restful架构特别适用的场合为用户快速增长的互联网和移动互联网领域,看起来很容易理解,以资源,资源的表示,资源的状态转移为核心概念。

不过实际在实现Restful服务的时候,仍然有一些应用陷阱,部分是由于Restful本身不是强制性约束,而只是风格建议,

部分是由于开发者对Restful的一知半解乃至曲解所导致。

把一个系统的Restful APIs设计简洁得体,让使用者舒服,并遵循一致的风格/规范,毫无疑问是好的架构师需要去做的事情。

比如一个网上商城系统的用户注册、登陆、更新帐户信息等行为,如何用Restful提供API接口,并非CRUD映射那么简单。

下面是对Restful服务相关的必读文章,对Restful几乎所有问题都有精准的解读。

1、Fielding博士论文,Restful风格提出者

http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

2、RESTful实践 RESTful HTTP in practice

http://www.infoq.com/articles/designing-restful-http-apps-roth

3、如何版本化REST服务 Versioning REST services

http://www.informit.com/articles/article.aspx?p=1566460

把版本和资源表示格式放在URL中虽然不那么Restful,但也有好处,简洁直观,便于从系统日志中检查问题

4、如何处理非CRUD动作,如door/1/lock, user/1/login etc...基本上可以通过为资源添加一个状态属性(子资源)来去动词化

http://stackoverflow.com/questions/16091947/how-to-route-non-crud-actions-in-a-restful-asp-net-web-api

一致的URL风格方便在配置中统一建立URL映射规则,可以避免特殊处理代码即硬编码,

如果把动词register/login等放在url中,固然看起来直观,但需要编写特定的URL映射,从而引入hard codes。

5、RESTful服务安全方案oauth/oauth2被广泛使用如Facebook

http://oauth.net/2/

by iefreer

转载:http://blog.csdn.net/iefreer/article/details/9017651

[转]移动互联网应用技术架构简介-Restful服务的更多相关文章

  1. RESTful 架构与 RESTful 服务

    风格 ⇒ 标准 ⇒ 协议 ⇒ 实现 Representational State Transfer,是一种软件架构风格,既然是风格,就非标准或协议,而是定义了一组设计原则和约束条件.具有如下特点: 适 ...

  2. Java高可用集群架构与微服务架构简单分析

    序 可能大部分读者都在想,为什么在这以 dubbo.spring cloud 为代表的微服务时代,我要还要整理这种已经"过时"高可用集群架构? 本人工作上大部分团队都是7-15人编 ...

  3. GIAC全球互联网架构大会——互联网技术架构未来

    GIAC全球互联网架构大会是高可用架构技术社区推出的面向架构师.技术负责人及高端技术从业人员的技术架构大会.中国拥有全球最大的互联网用户及移动互联网用户,如何使用合适的架构来搭建互联网系统,是每一个互 ...

  4. 宜人贷PaaS数据服务平台Genie:技术架构及功能

    上篇:架构及组件 一.数据平台的发展 1.1 背景介绍 随着数据时代的到来,数据量和数据复杂度的增加推动了数据工程领域的快速发展.为了满足各类数据获取/计算等需求,业内涌现出了诸多解决方案.但大部分方 ...

  5. 《大型网站技术架构:核心原理与案例分析》【PDF】下载

    <大型网站技术架构:核心原理与案例分析>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230062557 内容简介 本书通过梳理大型网站 ...

  6. 【熊猫TV】《程序员》:聚光灯下的熊猫TV技术架构演进

    2015年开始的百播大战,熊猫TV是其中比较特别的一员. 说熊猫TV是含着金钥匙出生的公子哥不为过.还未上线,就频频曝光,科技号,微博稿,站上风口浪尖.内测期间更是有不少淘宝店高价倒卖邀请码,光内测时 ...

  7. 朱晔的互联网架构实践心得S2E7:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)

    前言 程序开发毕竟还不是搬砖这种无脑体力劳动,需要事先有标准,有架构,有设计,绝对不是新公司今天创立,明天就可以开始编码的.其实很多公司在起步的时候没有财力和资源建设独立的基础架构或平台架构部门,甚至 ...

  8. SpringCloud学习笔记(二):微服务概述、微服务和微服务架构、微服务优缺点、微服务技术栈有哪些、SpringCloud是什么

    从技术维度理解: 微服务化的核心就是将传统的一站式应用,根据业务拆分成一个一个的服务,彻底 地去耦合,每一个微服务提供单个业务功能的服务,一个服务做一件事, 从技术角度看就是一种小而独立的处理过程,类 ...

  9. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

随机推荐

  1. Win7如何设置标准账号无法访问我的D盘

    1 右击对应的盘符,选择属性 2 设置对应的权限,比如是否可读,是否可写 3 之后再用这种用户登录就可以知道相应的权限了

  2. 《大话操作系统——做坚实的project实践派》(5)

    有人说我不是仅仅会玩X86吗?我如今铁板钉钉的申明:我事实上兼通:ARM.IA-32.IA-32e.AMD64. ​了解MIPS.但没做过MIPS由于确实没有对应的MIPS硬件平台. ​

  3. Java I/O操作汇总

    作者:卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/41154807 本文简绍解说了FileWriter.FileReader.Buf ...

  4. Jquery滑动门实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 微信小程序 (node) warning: possible EventEmitter memory leak detected

    小程序 (node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setM ...

  6. 一学就会之ado.net(一)

    ado.net十一组用于和数据源进行交互的面向对象类库.数据源能够是数据库也能够是文本文件.excel表格或者XML文件. 简单来说.ado.net就是与不同的数据源进行交互(增删改查)的. ado. ...

  7. 【Datastage】函数大全

    一. 类型转换函数 类型转换函数用于更改参数的类型. 以下函数位于表达式编辑器的"类型转换"类别中.方括号表示参数是可选的.缺省日期格式为 %yyyy-%mm-%dd. 以下示例按 ...

  8. mysql union和union all 的差别以及使用

    Union由于要进行反复值扫描,所以效率低.假设合并没有刻意要删除反复行,那么就使用Union All  两个要联合的SQL语句 字段个数必须一样.并且字段类型要"相容"(一致). ...

  9. 一个基于node express4.0和mongodb的活动报名

    代码放在code.csdn.net上了,详细https://code.csdn.net/qazwsx2345/node_activity/tree/master git clone git@code. ...

  10. ASP.NET MVC3 系列教程 - 模型

    I:基础绑定的实现 1.在前面的两篇基础文章(路由 及 控制器&视图)当中,还没对QueryString的绑定进行介绍,因为我觉得它更适合放在这一章节中去介绍.我们在用WebForm去开发的时 ...