fastapi应用

想要快速搭建一个HTTP服务,用于接口测试。

可以选择fastapi

官方文档:https://fastapi.tiangolo.com/zh/#_4

特点

很简单很快

环境安装

pip install fastapi uvicorn

示例运行

from typing import Optional
import logging

from fastapi import FastAPI, Request

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}

@app.post("/test")
async def new_test(req: Request):
    bd = await req.body()
    logging.warn("request q:%s =====================  body:%s", str(req.scope),str(bd))
    return {"Hello": "World2222"}

uvicorn main:app --reload --host=0.0.0.0 --port=80
生产环境中,考虑要daemon模式, 可以配合 superviser 或者用gunicorn 启动 .
gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker --bind=0.0.0.0:8000 -D

其他应用

参考官方文档, 实现一般的API限定类型和检查非常方便 。

获取Request实例

Request, Response 都是starlette的模块提供
文档可参考:https://www.starlette.io/requests/