Python 全栈系列15 - 前后端项目衔接方式

0 说明

约定前后端接口交互的一般形式。

1 内容

1.1 认证

使用HTTPAuth的方式,具体方法是:

  • 1.在请求头增加 Authorization字段
headers = {
     'Authorization': Base64编码认证字符串}

Base64编码认证字符串 = 'Basic ' + b64encode(username:password)
  • 2.服务端认证用户密码后,以json方式返回token字符串。
    进行请求时,将token替换用户名,密码为空(“:”还是要的)。
    Base64编码认证字符串 = 'Basic ’ + b64encode(token字符串:)

  • 3.token如果过期失效,服务器返回401,需要再次用用户和密码获取新的token。

1.2 返回字段的一般形式

接口返回的数据是json形式的,结构如下:

{
     'status': true/false,
 'msg': 一些错误提示文本,
 'data': 数据,
 'meta': 关于本次处理的其他信息}
status: 本次处理的结果状态 true/false;
msg: 本次处理的提示信息;
data: 本次返回的数据,可能没有,也可能是其他形式的数据
meta:必要的其他信息

2 数据格式

2.1 单个表格数据

year x1 x2
2016年 1 a
2016年 2 b
2017年 3 c

对应的json格式:

{
     'columns': [{
     'label': '年', 'prop': 'year'},
  			 {
     'label': '变量1', 'prop': 'x1'},
  			 {
     'label': '变量2', 'prop': 'x2'}],
 
 'data': [{
     'year': '2016年', 'x1': 1, 'x2': 'a'},
 		  {
     'year': '2016年', 'x1': 2, 'x2': 'b'},
  		  {
     'year': '2017年', 'x1': 3, 'x2': 'c'}]
  }

2.2 多个表格数据

year x1 x2
2016年 1 a
2016年 2 b
2017年 3 c

按年份拆分成多个(2个)表格返回

{
     '2016年': {
     'columns': 
					[{
     'label': 'x1', 'prop': 'x1'},
   					{
     'label': 'x2', 'prop': 'x2'}],
  			'data': 
  					[{
     'x1': 1, 'x2': 'a'}, 
  					{
     'x1': 2, 'x2': 'b'}]},
 '2017年': {
     'columns': 
 					[{
     'label': 'x1', 'prop': 'x1'},
   					{
     'label': 'x2', 'prop': 'x2'}],
  			'data': [{
     'x1': 3, 'x2': 'c'}]}}

你可能感兴趣的:(全栈)