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

移动互联网应用技术架构简介-Restful服务相关推荐

  1. 移动互联网应用技术架构简介-Android

    Android历史 Android是一款基于Linux的操作系统,面向触摸屏移动设备如智能手机和平板电脑. 最早是由位于加州的Android公司所开发, 2003年创立,2005年被Google收购. ...

  2. 移动互联网应用技术架构简介-iOS

    iOS源于UNIX,由Mach,BSD系统改写发展而来,很稳定. 第一层(最底层)核心操作系统层(Core OS) 包括内存管理.文件系统.电源管理以及一些其他的操作系统任务. 可以直接和硬件设备进行 ...

  3. 工业互联网 — TSN — 技术架构

    目录 文章目录 目录 TSN 的软件架构 TSN 的网络架构 TSN 的软件架构 TSN 的软件架构遵循了 SDN 的思想,并实现了当前的 IEEEstd802.1Qcc 协议要求,包含了下列三种功能 ...

  4. Redux技术架构简介

    Redux是一个程序架构,源于Flux(Facebook提出的一种架构),然而,它不仅可以应用于React,还可以应用于其他任何框架中.值得一提的是,Redux的源代码很少,但是他的逻辑拆分和函数式编 ...

  5. 互联网金融网贷平台技术架构介绍

    本文讲的是互联网金融网贷平台技术架构介绍,目前互联网金融正飞速发展,快速改变着我国的金融格局.短时间内,各类融资理财平台(如陆金所.人人贷.旺财谷等)为有理财需求的理财者们,提供各种投资标的和投资渠道 ...

  6. Serverless 技术架构 — 初探传说中的FAAS(Function as a Service)

    各位看官,你一定或多或少听到关于API Gateway,Docker,Function Compute, Serverless 等各种酷酷的新单词,跟人聊天的时候简直是装*利器呀, 那么你真的知道这个 ...

  7. Java SaaS高可用集群架构与微服务架构分析

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

  8. 现阶段Java高可用集群架构与微服务架构的简单分析

    一.如何选择 1.高可用集群 适用于中小型创业公司项目架构,小型技术团队快速迭代版本发布部署需求,前期低成本运行,爆发时可通过投入适量成本横向扩容服务器抗压. 特点: 前期技术开发成本低 一定的服务器 ...

  9. 创业公司 互联网架构方案 整体技术栈 基础设施 数据库 服务治理 消息中间件 日志系统 ELK 自动化部署

    欢迎关注博主公众号:[矿洞程序员]文章由陈晓阳原创. 本人微信:chenxiaoyangzxy. 免费提供本人大量学习资料. 从零开始搭建创业公司后台技术栈 原创: 潘锦 说到后台技术栈,脑海中是不是 ...

最新文章

  1. matlab多元回归程序,多元回归程序MATLAB程序
  2. 多篇顶会看个体因果推断(ITE)的前世今生
  3. 05-xpath爬虫数据解析
  4. Dapper源码学习和源码修改(下篇)
  5. python中ls是什么_使用Python代码实现Linux中的ls遍历目录命令的实例代码
  6. linux查看文件和目录大小(du)
  7. 【杂谈】Opera10.62的Flash 10插件在WIN 7下无法安装的问题
  8. getElementsByName和getElementByID
  9. Ajax的工具类AjaxUtils,使用struts返回Json类型
  10. 《简明Python教程》学习笔记
  11. WinCam v2.0.0 Windows极简屏幕录像工具单文件版
  12. Cisco系列交换机型号
  13. 生物医学数据大爆炸,大数据“挖掘机”哪家强?
  14. ts文件引入js文件_如何编写一个d.ts文件的步骤详解
  15. 浏览器屏蔽百度推广广告
  16. 新电脑win10系统的一个BUG
  17. 在kile中为stm32移植FreeRTOS
  18. 青蛙的约会(POJ 1061 扩展欧几里德算法)
  19. TOM企业邮箱登录入口在哪里?分享企业邮箱登录入口手机网页版
  20. java 中常用框架、intell idea简单使用、爬虫系统

热门文章

  1. Android studio小能手之色卡对照表
  2. fs.aio max nr mysql_技术分享 | MySQL 主机该如何配置 fs.aio-max-nr
  3. React——脚手架创建、基本操作、Typescript
  4. 《世界因你不同:李开复自传》--引言 从心选择
  5. 微信小程序中css常用属性
  6. 菜鸟学习Spring——第一个例子
  7. 《精通CFD工程仿真与案例实战---FLUENT GAMBIT ICEM CFD Tecplot(第2版)》—— 导读...
  8. 阿里云HPC助力新制造 | 上汽仿真计算云SSCC
  9. VMware为Linux生成新的Mac地址(克隆虚拟机时可以用)
  10. yapi接口导出为word_接口文档神器YApi