Start
- 前篇博客已经有预告了,我将分享一下关于REST和RESTful API的想法,源于我的强迫症,源于这几天对概念问题的执念。
- 问题来源已久,从我一开始做java EE 开发的时候我就在书中读到了有关REST的概念,当时似懂非懂,主要是解决主要的矛盾对这个概念就放下了,然后陆陆续续听到关于它的消息,随着轻量级(lightweight)的应用的发展,前几天看到文章说未来必定是REST的天下,是否属实暂且不表,没有必要参加流派之间的纷争。不过很多他在某些方面确实还是有不错的地方,值得反思和学习。
轨迹
- 首先是在国内的网站上搜索了一下,发现说什么的都有…无奈还是google:”how to understand rest“ 选择了前几个的链接,耐着性子读了下来,大体有了个了解。
然后发现百度百科的说法也很不错:
一种软件架构风格,设计风格而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制.
来自百度百科
总体来讲说的还是不错的。在以上的基础上去看一下的几个链接,应该会很清楚了。
理解
what exactly is restful programing –from stackOverflow
这里面有好多高分回答,我看了一个,不是很懂,然后看了接下来的。a begainner’s guide to HTTP and REST , 这篇文章讲解的很细致,不过涉及REST的不是很多,算是简单的介绍,不过对web开发者来说里面讲了很多协议的细节,很清晰,国内很少有类似的tutorial。
p.s. 需要注意的是 里面涉及到了 一个单词:Idempotent–幂等 的概念。通俗来说就是执行多个操作的效果和执行一次的想过是一样的。
你也可以看这里(理解HTTP幂等性)来了解进一步。
- 最后在这篇文章里真正清楚了!RESTful Web Services: A Tutorial
作者从
- Representations
- Messages
- URIs
- Uniform interface
- Stateless
- Links between resources
- Caching
七个方面详细而又简单的介绍了REST和RESTful ,当我读到:
REST requires each resource to have at least one URI. A RESTful service uses a directory hierarchy like human readable URIs to address its resources. The job of a URI is to identify a resource or a collection of resources. The actual operation is determined by an HTTP verb. The URI should not say anything about the operation or action. This enables us to call the same URI with different HTTP verbs to perform different operations.
Suppose we have a database of persons and we wish to expose it to the outer world through a service. A resource person can be addressed like this:
This URL has following format:
Protocol://ServiceName/ResourceType/ResourceID
的时候,我就顿悟了,加上看到的各种解释,一起反应有了个全面的认识。so, good luck!