-
Notifications
You must be signed in to change notification settings - Fork 0
RESTful API
Trotyl Yu edited this page May 18, 2015
·
11 revisions
一种API接口的设计风格和理念。
请先把 GitHub API 的主要部分过一遍,会对API设计有很大帮助。
##核心理念
一切内容皆为 资源(Resource),通过URI(注意,这里是URI,不是URL)定位资源,通过CRUD方法操作资源。
##主要优势
- 主防止出现过多的URL路径,增强可读性和可维护性。
- 充分利用现有的HTTP协议项,减少传输内容。
- 充分利用HTTP GET的Cache机制,减少传输次数。
##举个例子
比如有一个物流管理系统(你懂的我在黑哪个东西~):
首先设计URL(URL是一种特殊的URI),因为要同时兼顾网页和API,故API统一用API开头。
定为 /api/:version/:path_to_resource
。
路由设计如下:(/api/v1
省略)
METHOD | PATH | PARAM | FUNCTION |
---|---|---|---|
GET | /orders[?since=:id] |
获取订单列表(从某个订单开始) | |
GET | /orders/:id |
获取特定订单信息 | |
PUT | /orders/:id |
订单需更改字段(如订单状态) | 更新特定订单的特定字段(部分更新) |
DELETE | /order/:id |
删除特定订单 |
##高级内容
- 对于需要选择性的部分,可以利用Headers中的If-Match字段来进行条件查找。
- 对于需要分页的部分,可以利用Headers中的Link字段返回下页的URL。