前置知识点
FastApi:一个用于构建API的现代、快速(高性能)的web框架。
FastApi是建立在Pydantic和Starlette基础上,Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库。Starlette是一种轻量级的ASGI框架/工具包,是构建高性能Asyncio服务的理性选择。
Starlette是一个轻量级的ASGI框架/工具包,主要负责web部分(Asyncio)
Pydantic负责数据部分(类型提示)
python版本要在3.7以上
1.1 http协议
1.什么是请求头请求体、响应头响应体
2.URL地址包括什么
3.get请求和post请求是什么
4.Content-Type是什么
1.1.1 简介
http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于万维网服务器与本地浏览器之间传输超文本的传送协议。http是一个应用层的面向对象的协议,由于其简洁、快速的方式,适用于分布式超媒体信息系统。
浏览器作为http客户端通过URL向http服务端即web服务器发送所有请求,web服务器根据收到的请求,向客户端发送响应信息。
1.1.2 http协议特性
-
基于TCP/IP协议
http协议是基于TCP/IP协议之上的应用层协议
-
基于请求-响应模式
http协议规定,请求从客户端发出,服务器端响应该请求并返回。换句话说就是,先从客户端开始建立通信,服务器端在没有接收到请求之前不会发送响应。
-
无状态保存
-
短连接
http1.0默认使用的是短连接,浏览器和服务器每进行一次http操作,就建立一次连接、任务结束就中断连接。
http1.1起,默认使用长连接,要使用长连接,客户端和服务器的http首部的Connetion都要设置为keep-alive,才能支持长连接。
http长连接指的是复用tcp连接。多个http请求可以复用同一个tcp连接,这就节省了tcp连接建立和断开的消耗。
1.1.3 http请求协议与响应协议
-
http请求协议
-
请求首行:
-
请求方式
-
post
-
get
将数据放在?后面
没有请求体
参数有限
-
-
请求路径
-
请求协议
-
-
请求头(键值对)
-
content-type:application/json
标识请求体,使服务器知道请求体的类型
-
user-agent:Chrome/104.0.0.0 Safari/537.36
-
-
请求体
- 请求头和请求体之间有一个空行,用来隔开请求体和请求头
-
-
http响应协议
- 响应首行
- 响应头
- 响应体
1.2 api接口
- 前后端不分离
- 客户端看到的内容和所有界面效果都是由服务端提供出来的
- 前后端分离(绝大部分项目都是前后端分离)
- 前端形成一个独立的网站,服务端构成一个独立的网站
应用程序编程接口(Application Programming Interface,API接口),就是应用程序对外提供一个操作数据的入口,这个入口可以是一个函数或类方法,也可以是一个url地址或者一个网络地址。当客户端调用这个入口,应用程序则会执行对应代码操作,给客户端完成相对应的功能。
目前大多数使用的接口实现规范主要是:restful、RPC。
restful是一种专门为web开发而定义API接口的设计风格,尤其适用于前后端分离的应用模式。
关键:面向资源开发
该风格的理念认为后端开发任务就是提供数据的、对外提供的是数据资源的访问接口,所以在定义接口时,客户端访问的url路径就表示这种要操作的数据资源。
对于数据资源分别使用post、delete、get、update等请求动作来表达对数据的增删查改。