Restfull API
首先,我们学习一下什么是rest
rest不是一门技术,也不是一种协议,rest 我理解的 主要就是对于我们访问的网址(URI)的一种规范和约束,满足这些约束条件和原则的设计就是Restful
在RESTful架构中,每个网址代表一种资源(resource),URL设置中不应该存在动词;我们在网站进行一些操作,也就是对资源的行为;
在rest规则中,有两个基础的概念:资源和行为
资源:就是我们要操作的资源 比如说:我们要对peoject进行操作,那么这个资源就是peojects
URL代表一种资源,而资源一般来说应该是多个,所以常用复数,例子:
http://localhost:8080/CostManagement/projects
行为:一般就是我们常用的四种操作 查看、创建、编辑、删除
对于资源的行为,由HTTP动词表示。
常用的HTTP动词有下面四个
GET :查询
POST :创建
PUT :更新
DELETE :删除
优点:
1.用/来表示层级关系,比如:
/git/git/commit/e3af72cdafab5993d18fae056f87e1d675913d08就表示了一个多级的资源, 指的是git用户的git项目的某次提交记录
2.使用_或-来让URI可读性更好
在设计URL的过程中,难免为了表述清楚而出现URL中出现特别长的单词,所以,可以用_或-来让URI可读性更好,比如:
开源中国社区,它上面的新闻地址就采用这种风格, 如http://www.oschina.net/news/38119/oschina-translate-reward-plan
试想如果不用-那就是/oschinaTranslateRewardPlan 这样的可读性就可想而知了
在project这个模块我设计的URL
大列表
[POST] http://localhost:8080/CostManagement/project/projects/dataSource
删除:
[DELETE] http://localhost:8080/CostManagement/project/projects/{id}
查看
[GET]http://localhost:8080/CostManagement/project/projects/{id}/details
新增保存
[POST]http://localhost:8080/CostManagement/project/projects
编辑保存 [PUT] http://localhost:8080/CostManagement/project/projects/{id}