zoukankan      html  css  js  c++  java
  • Restframework框架总结及restful规范

    1. django rest framework框架的作用?

    帮助开发者可以快速开发出遵循restful规范的API

    2. django rest framework框架都有哪些组件(10)?

    -版本
    -权限
    -认证
    -节流
    -分页
    -解析器
    -序列化(最重要)
    -路由
    -视图
    -渲染器(把结果渲染到一个模板里)

    3.为什么做前后端分离?

    -分工明确,提高效率
    -对于后端人员,主要为前端提供:API接口
    	以前的你的接口:
    		http://127.0.0.1:8000/index/
    		http://127.0.0.1:8000/users/
    		http://127.0.0.1:8000/add_users/
    		http://127.0.0.1:8000/del_users/
    		http://127.0.0.1:8000/edit_users/
    	restful 规范:
    		http://127.0.0.1:8000/users/ 
    -同样的业务逻辑,能开发多个端口(app,网页端,ios端,微信小程序等),统一一套API接口,能适用于多个端口
    -vue.js等框架编写前端时,会比之前写jQuery更简单快捷
    

    4.什么是跨域?

    -比如你访问百度,在百度js的ajax中携带一个京东的URL发送给你,由于浏览器的同源策略(同源是指域名,协议,端口相同),会进行阻隔,你接收不到页面内容

    5.谈谈你对restful规范的理解(-->所有语言共用)

    1. 使用https代替http(http通过socket收发数据是明文的,https是加密的,安全性高)
    	https://www.luffycity.com/course/detail/web/3
    	http://www.luffycity.com/course/detail/web/3
    	
    2. 在URL中体现自己写的是API
    	https://www.luffycity.com/api/
    	https://api.luffycity.com/		可能会跨域
    
    3. 在URL中体现版本 (旧版本和新版本都能体现出)
    	https://www.luffycity.com/api/v1/users 
    	https://www.luffycity.com/api/v2/users
    	
    4. 名词(面向资源编程)
    	https://www.luffycity.com/api/v1/users 
    	https://www.luffycity.com/api/v1/song
    
    5. 行为 
    	https://www.luffycity.com/api/v1/users
    	method:
    		get,获取
    		post,新建
    		put,更新
    		patch,局部更新
    		delete,删除
    6. 条件 (分页等)
    	https://www.luffycity.com/api/v1/users?page=1
    	https://www.luffycity.com/api/v1/users?page=1&gender=2
    	
    7. 状态码
    	200
    	301
    	302
    	404
    	500
    	推荐使用code:
    		def xx(request):
    			ret = {'code':1000,'data':None}
    			try:
    				...
    			except Exptions as e:
    				ret['status'] = 1001 
    				ret['error'] = 'xxxx错误'
    
    			return JsonResponse(ret)
    			
    8. 错误信息
    	{
    		code:10001,
    		error:'用户名或密码错误'
    	}
    	
    9. 返回结果:
    	GET:
    		https://www.luffycity.com/api/v1/users
    			响应:
    				{
    					code: 1000,
    					data: [
    						{'name':'赵森','age':19},
    						{'name':'赵云','age':16},
    						{'name':'赵云','age':16},
    						{'name':'赵云','age':16},
    						{'name':'赵云','age':16},
    					]
    				}	
    	GET:
    		https://www.luffycity.com/api/v1/users/1/
    			响应:
    				{
    					code:1000,
    					data:{'name':'赵森','age':19},
    				}
    	POST:
    		https://www.luffycity.com/api/v1/users
    			请求体:
    				{'name':'大表哥','age':19}
    			响应(不要):
    				{
    					code:1000,
    					data:{'id':9, 'name':'大表哥','age':19}
    				}
    				
    	PUT/PATCH:
    		https://www.luffycity.com/api/v1/users
    			请求体:
    				{'name':'大表哥','age':19}
    			响应(不要):
    				{
    					code:1000,
    					data:{'id':9, 'name':'大表哥','age':19}
    				}
    	
    	DELETE:
    		...
    10. hyper link 
    	
    	访问:https://www.luffycity.com/api/v1/users
    		{
    			code:1000,
    			data:[
    				{'id':1,'name':'赵森','age':19, 'depart':https://www.luffycity.com/api/v1/depart/1/},
    				{'id':1,'name':'赵森','age':19, 'depart':https://www.luffycity.com/api/v1/depart/1/},
    				{'id':1,'name':'赵森','age':19, 'depart':https://www.luffycity.com/api/v1/depart/1/},
    				{'id':1,'name':'赵森','age':19, 'depart':https://www.luffycity.com/api/v1/depart/1/},
    				{'id':1,'name':'赵森','age':19, 'depart':https://www.luffycity.com/api/v1/depart/1/},
    			]
    		}
    	
    	https://www.luffycity.com/api/v1/users
    		{
    			code:1000,
    			data:[
    				{'id':1,'name':'赵森','age':19, 'depart_title':'公关部'},
    				{'id':1,'name':'赵森','age':19, 'depart_title':'公关部'},
    				{'id':1,'name':'赵森','age':19, 'depart_title':'公关部'},
    				{'id':1,'name':'赵森','age':19, 'depart_title':'公关部'},
    				{'id':1,'name':'赵森','age':19, 'depart_title':'公关部'},
    			]
    		}
    

     

      

  • 相关阅读:
    npm 默认创建项目如何自动配置
    VueJS + TypeScript 入门第一课
    实现类数组转化成数组(DOM 操作获得的返回元素值是一个类数组)
    webpack4(4.41.2) 打包出现 TypeError this.getResolve is not a function
    vue-cli 4.0.5 配置环境变量样例
    关于H5页面在微信浏览器中音视频播放的问题
    ant-design-vue 快速避坑指南
    记elementUI一个大坑
    VUE自定义(有限)库存日历插件
    node转发请求 .csv格式文件下载 中文乱码问题 + 文件上传笔记
  • 原文地址:https://www.cnblogs.com/LearningOnline/p/9429311.html
Copyright © 2011-2022 走看看