什么是RESTful规范
REST不是“rest”这个单词,而是representational State Transfer的缩写,大多数Blog都是翻译成表现层状态转移,我实在是无法理解其中含义 - -,不过知乎上有一位大神概括的很精辟:
URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作
因为现在客户端层出不求,RESTful规范就是为了统一各终端接口服务的格式,提高效率
URL命名规范
- 规范的API应该包含版本信息,在RESTful API中,最简单的包含版本的方法是将版本信息放到url中,如:
/api/v1/posts/
/api/v1/drafts/
/api/v2/posts/
/api/v2/drafts/
也可以用HTTP的header
- URI使用名词不使用动词,推荐用复数形式
Bad APIs
/api/getArticle/1/
/api/updateArticle/1/
/api/deleteArticle/1/
Good APIS
/api/Article/1/
获取、更新和删除分别通过 GET, PUT 和 DELETE方法请求API即可
- 保证 HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染)。
Bad
GET /deleteProduct?id=1
- 资源的地址推荐用嵌套结构,如:
/api/authors/gevin/articles/
- 使用正确的HTTP Status Code表示访问状态
自己使用到的目前就这么多,等以后有机会更加深入的研究,下面贴上参考和推荐的文章:
怎样用通俗的语言解释REST,以及RESTful?
RESTful API 编写指南
RESTful 架构风格概述
RESTful API 设计指南
have fun :)