异步框架 fastapi -- 简单介绍

fastapi 介绍

fastapi官方文档

  • fastapi 是现代化、高性能、基于python标准类型注释的异步web框架;
  • 基于python构建web APIs,性能可比go语言;
  • 高效编码,更少的bug错误;
  • 安装pip install fastapi uvicorn,部署基于ASGI;

 

restful接口设计

  • 应用场景: 前后端分离
  • 面向资源的设计,每个 uri 是一个资源,对资源的操作使用请求的方法表示
    • GET, 获取资源;
    • POST,创建资源;
    • PUT,更新资源;
    • DELETE,删除资源;
    • HEAD 类似GET,只返回头部信息;
    • OPTIONS,查看服务端支持的请求方法等,常用跨域的检查;
  • 交互数据格式:json;
  • uri 资源路径设计
    • 尽量使用名词;
    • 尽量体现版本号,如/v1/user
    • 使用查询参数;
       

简单应用

# __author__ = "laufing"

from fastapi import FastAPI # 异步web框架
import uvicorn # ASGI

# 创建应用对象
app = FastAPI()


# GET 接口
@app.get("/")
def index():
    return {
        "code": 200,
        "msg": "0k"
    }

# get /user/info?page=5&pageSize=10
@app.get("/user/info")
def user_info(page: int = 1, pageSize: int = 10) -> dict: # 查询参数 直接传入
    print("query parameters:", page, pageSize)
    return {
        "code": 200,
        "msg": "page=%d and pageSize=%d" % (page, pageSize)
    }


# 数据模型、序列化
from pydantic import BaseModel


class UserData(BaseModel):
    name: str # 必须参数
    password: str
    phone: str



# post /user/register    请求体数据 {"name": "jack", "password": 123, "phone": 123}
@app.post("/user/register")
def register(user: UserData) -> UserData:
    print(user, type(user)) # UserData类型的对象
    return user # 将模型序列化为json


if __name__ == '__main__':
    # 即绑定局域网ip
    # 0.0.0.0 支持linux ,可以在py脚本中启动
    # uvicorn.run(app, host="localhost", port=8083, log_level="info")
    pass

启动方式:

  • python脚本方式;
    • uvicorn.run(app, host, port)
  • 命令行方式
    • uvicorn src.main:app --reload

可以在浏览器中测试接口;
 

Swagger风格的接口文档

在浏览器中输入:http://localhost:8000/docs,可以在如下接口中进行测试。

在这里插入图片描述
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

laufing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值