12_01、前期知识准备

2022/3/30 23:22:07

本文主要是介绍12_01、前期知识准备,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、WEB应用模式

web应用模式分为前后端混合开发和前后端分离开发

1、前后端混合开发

简单解释就是,后端人员既写后端内容,也写前端内容(html,css,js)

特点

页面渲染是在后端完成,对后端压力较大

def index(request)
    return render(request, 'index.html')

2、前后端分离开发

前后端分离开发是现在主流开发模式

它是指后端内容在后端中开发,前端内容在前端中发展

前端

前端有自己的框架:vue,react

前端的展现形式:网页,APP,小程序

模板渲染:前端的js

后端

使用语言:python,go

有自己的框架:Django,flask

二、API接口

API接口是前后端分离开发项目中,前后端交互的媒介

 '''
  -url地址
  -请求方式:get ,post ...
  -请求参数:name='西游记'
      get请求--->127.0.0.1/books?name='西游记'
  -响应结果
      -http响应--》响应状态码--》响应头---》响应体(json)
'''

三、接口测试工具postman的使用

# 对接口进行测试---》在浏览器中只能发送get请求,发不了post,delete..
# 接口测试工具:mac,win,linux都可以
# 使用最多的软件:postman ---》后来慢慢收费了---》Postwoman

 

# 下载地址:https://www.getpostman.com/downloads/
# 双击就装完了

前后端交互的编码格式有哪几种?

# urlencoded:正常的post请求提交数据:name=lqz&age=19
# formdata:post请求上传文件:带文件二进制形式
# json:body体中的数据格式为:{"name":"lqz","age":19}--》用的多

 

四、restful规范

前后端分离项目开发要使用API接口用于测试,所以API接口最好要有非常广泛的适用性。

为了达成这一要求,便有了restful规范,这个规范定义了前后端分离的标准。

REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征性状态转移)。 它首次出现在2000年Roy Fielding的博士论文中。


RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中

RESTful的10条内容:

1 数据的安全保障

  通常使用https协议


2 用api关键字标识接口

  在接口中带api字眼,让别人一看就知道这是个api接口

https://api.baidu.com/books
https://127.0.0.1:8080/api/books

       
3 多版本共存,在接口地址中带版本号
        -都留---》尽快升级---》xx年我们就不支持xx以下版本了
        -有的人用了老版本app--》老接口v1
        -有的人用了新版本app--》新接口v2

https://api.baidu.com/v1/login
https://api.baidu.com/v2/login


4 数据即是资源,均使用名词(可复数)--》请求地址中尽量不出现动词

https://api.baidu.com/v1/users  # 获取用户,删除用户,新增用户,都是名词

  
5 资源操作由请求方式决定-->get,post,delete ,put,patch

get  # 请求是获取数据
post  # 请求是新增数据
delete  # 请求是删除数据
put  #请求是修改数据
patch  #请求是局部修改数据

   
6 请求地址中带过滤条件

https://api.example.com/v1/zoos?limit=10  # 返回10条数据
https://api.example.com/v1/books?name=西游记  # 查询名字是西游记的这本书

     
7 响应状态码(http的响应状态码,响应体的json数据中带状态码)
  http的响应状态码

  响应体中返回json格式数据,返回的code,statu也有状态码,是服务端自定义的
      -1001  :用户名错误
      -1002   :没有权限。
      
8 错误处理,应返回错误信息
  返回数据是json格式--》带状态码---》错误信息

      {
        error: "无权限操作"
        }


9 返回数据格式符合如下规范(大部分公司不按这个)
  多条数据返回列表
    GET /collection:返回资源对象的列表 [{name:lqz,age:19},{name:pyy,age:33}]
  单条数据返回字典
    GET /collection/resource:返回单个资源对象 {name:lqz,age:19}
  新增,返回新增的对象---》{name:lqz,age:19}
    POST /collection:返回新生成的资源对象
  修改,返回修改后的对象--》{name:lqz,age:19}
    PUT /collection/resource:返回完整的资源对象
  修改,返回修改后的对象--》{name:lqz,age:19}
    PATCH /collection/resource:返回完整的资源对象
  删除,返回空文档
    DELETE /collection/resource:返回一个空文档  -->{code:100,msg:删除成功}
 
 
10 返回资源中链接地址

  {
      "id": 1404376560,
      "description": "人生五十年,乃如梦如幻;有生斯有死,壮士复何憾。",
      "url": "http://blog.sina.com.cn/zaku",
      "profile_image_url": "http://tp1.sinaimg.cn/1404376560/50/0/1",
      "domain": "zaku",
  }

五、序列化和反序列化

api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把数据转换格式,序列化可以分两个阶段:

序列化: 把我们语言识别的数据转换成指定的格式提供给别人。

如python中的字典、列表、对象...只能在python中识别,在其他语言或前端中,不能识别

我们可以通过json、xml、prop、massagepack等转换成别的都能识别的格式,这一过程叫做序列化

反序列化:把别人提供的数据转换/还原成我们需要的格式

前端为了后端能够识别自己语言格式,也会把要传输的数据序列化

后端接收到序列化的数据,并不能直接使用,必须把这些数据转换成自己语言的格式,这一过程要做反序列化

现在最流行的序列化和反序列化工具是json

 



这篇关于12_01、前期知识准备的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程