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

最新文章

  1. JSHelper时间格式化
  2. thread、operation、GCD
  3. 5月18日 HTML 个人简历
  4. Cookie Session Cache
  5. 关于Weblogic连接池的TestConnectionOnReserve
  6. Java集合类之Hashtable
  7. nyoj 202 红黑树
  8. Lowest Common Ancestor of a Binary Search Tree 解答
  9. asp.net ajax检查用户名是否存在代码
  10. JAVA版A星算法实现
  11. Missing artifact net.sf.json-lib:json-lib:jar:2.4错误和Eclipse安装Maven插件错误
  12. Educational Codeforces Round 37
  13. nginx 错误502 upstream sent too big header while reading response header from upstream
  14. How to Install MemSQL
  15. (find) nyoj5-Binary String Matching
  16. .net core Jenkins持续集成Linux、Docker、K8S
  17. jdk 环境
  18. XCode中常用错误解决
  19. 模板自定义函数 template function
  20. (笔记)Linux中的终端、控制台、tty、pty

热门文章

  1. 循环对XML文档添加Attribute以及移除Element
  2. js对象的深浅拷贝
  3. 牛客寒假算法基础集训营1 D 小a与黄金街道
  4. 前三次OO作业总结
  5. 【Leetcode】Combinations
  6. pycharm、idea 2018软件安装教程
  7. freemarker macro 使用
  8. Ubuntu系统中连接TFS的Git地址注意事项
  9. HDU 4352 区间的有多少个数字满足数字的每一位上的数组成的最长递增子序列为K(数位DP+LIS)
  10. hdu2795 Billboard(线段树)