API

17 阅读2分钟

API(Application Programming Interface) 本质是一种“调用规则”(客户端与服务器之间的通信契约(约定)),告诉别人怎么访问你的功能(开发者设计访问规范),调用方(前端/其他系统)通过API文档知道如何访问。

一个完整的API包含

1.URL(访问地址)

2.请求方法(GET/POST/PUT/DELETE)

3.请求参数(path/query/body)

4.返回格式(一般是json)

5.状态码(200/404/500)

eg:

GET /users/1 HTTP/1.1

请求: 无

返回: { "id": 1, "name": "xuan" }

这就是API文档(给人看的说明书)

FastAPI与API的关系

FastAPI是用来“实现API”的工具

(FastAPI是一个Web框架,用于定义API并处理请求(包括路由、参数解析、 返回响应等) (业务逻辑是并不是由FastAPI来完成,而是开发者)

API (设计规则)->FastAPI用代码实现->路由系统映射url到具体功能->服务器运行(提供服务)

eg:

@app.post("/users")

def create_user(user: User):

return {"message": "创建成功"}

HTTP请求是什么?

浏览器发给服务器的一整条请求数据

http请求=

1.方法(GET/POST)

2.URL(路径+query参数)

3.http版本

3.请求头(一般不用管)

4.请求体(body,可选)

eg:

GET /users/1 HTTP/1.1

Host: 127.0.0.1:8000

GET和POST的区别

GET(通常用于获取数据)

eg: GET /users?id=1

通常通过query传参,不推荐使用body(规范允许但基本不用)

?id=1

POST(通常用于提交数据)

POST /users

{

"name": "xuan",

"age": 20

}

通常通过body传参

服务器是怎么工作的?

1.读取客户端发来的方法+URL

2.交给FastAPI

3.匹配路由(方法+路径)

4.执行函数

5.返回JSON

用户只输入 URL,但浏览器会自动构造完整 HTTP 请求(包含方法、路径、版本等),服务器根据请求中的方法和路径匹配对应 API 并执行逻辑(路由映射,本质是一个映射表mapping)