RESTful设计原则(不同公司具体细节可能不同):
在接口命名时应该用名词,不应该用动词,因为通过接口操作到是资源。
在url中加入版本号,利于版本迭代管理更加直观
https://www.rgc.com/v1/
对于资源的操作类型应该是通过http动词表示。
GET /zoos:列出所有动物园
POST /zoos:新建一个动物园
GET /zoos/ID:获取某个指定动物园的信息
PUT /zoos/ID:更新某个指定动物园的信息(提供该动物园的全部信息)
DELETE /zoos/ID:删除某个动物园
GET /zoos/ID/animals:列出某个指定动物园的所有动物
DELETE /zoos/ID/animals/ID:删除某个指定动物园的指定动物
排序规则:默认时升序,‘-’为降序;多个排序规则时以逗号间隔组合。使用sort查询参数限制
GET /tickets?sort=-time,created_at
优先以time倒序显示,其次以created_at正序显示
限制返回值的字段域:明确指定输出字段列表,用于控制网络带宽和速度。使用fields查询参数来限制。
GET /tickets?fileds=id,subject,customer_name,time&sort=-time
返回参数列表为id,subject,customer_name,time,并且以time字段倒序显
HTTP Method分别对于资源的CURD操作
GET(SELECT):从服务器取出资源(一项或多项)。
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
DELETE(DELETE):从服务器删除资源。
保证 POST,PUT,DELETE,PATCH,GET 操作幂等性。
使用SSL(Secure Sockets Layer 安全套接层)
参数和url采用蛇行命名方式。如:updated_time
服务器请求和返回的数据格式,应该尽量使用JSON,避免使用XML。在 request中的Accept和Response中的Content-Type:application/json
REST四个基本原则:
1.使用HTTP动词:GET POST PUT DELETE;
2.无状态连接,服务器端不应保存过多上下文状态,即每个请求都是独立的;
3.为每个资源设置URI;
4.通过XML JSON进行数据传递;
实现上述原则的架构即可称为RESTFul架构。
1.互联网环境下,任何应用的架构和API可以被快速理解;
2.分布式环境下,任何请求都可以被发送到任意服务器;
3.异构环境下,任何资源的访问和使用方式都统一;