1. RESTful优先原则
1.1. URL命名原则
1、 URL请求采用小写字母,数字,部分特殊符号(非制表符)组成。
2、 URL请求中不采用大小写混合的驼峰命名方式,尽量采用全小写单词,如果需要连接多个单词,则采用连接符“_”连接单词
3、
1.2. URL分级
第一级Pattern为模块,比如组织管理/orgz, 网格化:/grid
第二级Pattern为资源分类或者功能请求,优先采用资源分类
1.3. CRUD请求定义规范(RESTful)
如果为资源分类,则按照RESTful的方式定义第三级Pattern,
RESTful规范中,资源必须采用资源的名词复数定义。
/orgz/members | GET | 获取成员列表 |
/orgz/members/120 | GET | 获取单个成员 |
/orgz/members | POST | 创建成员 |
/orgz/members/120 | PUT | 修改成员 |
/orgz/members | PUT | 批量修改 |
/orgz/members/120 | PATCH | 修改成员的部分属性 |
/orgz/members/120 | DELETE | 删除成员 |
1.4. 复杂查询请求定义规范(RESTful)
/module/tickets?state=open | GET | 过滤 |
/module/tickets?sort=-priority | GET | 排序 |
/module/tickets?sort=-priority,created_at | GET | 排序 |
/module/tickets?sort=-updated_at | GET | 排序 |
/module/tickets?state=closed&sort=-updated_at | GET | 过滤+排序 |
/module/tickets?q=return&state=open&sort=-priority,created_at | GET | 搜索+过滤+排序 |
/module/tickets/recently_closed | GET | 一般数据请求 |
/module/tickets?fields=id,subject,customer_name,updated_at&state=open&sort=-updated_at | GET | 指定返回列 |
/cars?offset=10&limit=5 | GET | 分页 |
1.5. 特定请求
u 资源的特定请求
采用在资源下面定义特定的请求pattern,见如下示例
/module/tickets/recently_closed
备注:此情况下需要区分/module/tickets/{id},要避免URL无法区分,通用的配置请求要具备优先适配能力。
u 非特定资源类
请求URL采用如下形式: /module/buy_tickets
1.6. 页面View请求URL规范
页面URL仅定义在第二级,例如/orgz/xxx,xxx为orgz模块的视图名称名称。