RESTful概述
RESTful是目前最流行的一种互联网软件架构,是程序和程序之间进行数据交互需要遵循的规范。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。
REST是Representational State Transfer的缩写,是Roy Thomas Fielding在他2000年的博士论文中提出的。其提出的设计概念和准则为:
网络上的所有事物都可以抽象为资源
每个资源都应该有唯一的标识(identifier),对资源的操作不会改变标识
所有的操作都是无状态的
使用标准方法(GET、POST、PUT、PATCH、DELETE)操作资源
规范建议
1 restful规范?
1. https代替http,保证数据传输时安全。 2. 在url中一般要体现api标识,这样看到url就知道他是一个api。 http://www.luffycity.com/api/....(建议,因为他不会存在跨域的问题) http://api.luffycity.com/.... 假设: 前段:https://www.luffycity.com/home 后端:https://www.luffycity.com/api/ 3. 在接口中要体现版本 http://www.luffycity.com/api/v1.... 注意:版本还可以放在请求头中 http://www.luffycity.com/api/ accept: ... 4. restful也称为面向资源编程,视网络上的一切都是资源,对资源可以进行操作,所以一般资源都用名词。 http://www.luffycity.com/api/user/ 5. 如果要加入一些筛选条件,可以添加在url中 http://www.luffycity.com/api/user/?page=1&type=9 6. 根据method不同做不同操作。 7. 返回给用户状态码 - 200,成功 - 300,301永久 /302临时 - 400,403拒绝 /404找不到 - 500,服务端代码错误 很多公司: def get(self,request,*args,**kwargs): result = {'code':1000,'data':None,'error':None} try: val = int('你好') except Exception as e: result['code'] = 10001 result['error'] = '数据转换错误' return Response(result) 8. 返回值 GET http://www.luffycity.com/api/user/ [ {'id':1,'name':'alex','age':19}, {'id':1,'name':'alex','age':19}, ] POST http://www.luffycity.com/api/user/ {'id':1,'name':'alex','age':19} GET http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PUT http://www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} PATCH https//www.luffycity.com/api/user/2/ {'id':2,'name':'alex','age':19} DELETE https//www.luffycity.com/api/user/2/ 空 9. 操作异常时,要返回错误信息 { error: "Invalid API key" } 10. 对于下一个请求要返回一些接口:Hypermedia AP { 'id':2, 'name':'alex', 'age':19, 'depart': "http://www.luffycity.com/api/user/30/" }