Restframework框架總結及restful規範

1. django rest framework框架的做用?前端

幫助開發者能夠快速開發出遵循restful規範的API

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

-版本
-權限
-認證
-節流
-分頁
-解析器
-序列化(最重要)
-路由
-視圖
-渲染器(把結果渲染到一個模板裏)

3.爲何作先後端分離?python

-分工明確,提升效率
-對於後端人員,主要爲前端提供: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.什麼是跨域?ios

-好比你訪問百度,在百度js的ajax中攜帶一個京東的URL發送給你,因爲瀏覽器的同源策略(同源是指域名,協議,端口相同),會進行阻隔,你接收不到頁面內容

5.談談你對restful規範的理解(-->全部語言共用)web

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':'公關部'},
			]
		}
相關文章
相關標籤/搜索