fastapi学习笔记(1):文档入门与接口练习

引言

本篇主要是以一个例子入门,稍微介绍了post请求和get请求,另外并对其进行了简单部署,以及它相关swagger文档说明。

代码编写

# 载入包
import uvicorn
from pydantic import BaseModel
from enum import Enum
from fastapi import FastAPI
from fastapi.responses import JSONResponse
from fastapi.encoders import jsonable_encoder

# 创建数据模型
class Item(BaseModel):
    serverIp: str
    serverPort: int
    paramName: str
    authInfo: str
    sell: dict = {}


class ModelName(str, Enum):
    height:int = 0
    width: int = 0
    TypeError:str = None


app = FastAPI()


@app.get("/")
async  def root():
    return 'Hello World!'


# ?cameraNum=xx&videoType=1&user=xx
@app.post("/api/v1/service/sell")
async def quickon(item: Item,Num: str,orderType: int,user: str):

    item_dict = jsonable_encoder(item)
    Num_value = Num
    orderType_value = orderType
    user_value = user
    res = {}
    if item_dict:
        res["data"] = item_dict
        res["url"] = item_dict["serverIp"] + ":" + str(item_dict["serverPort"]) + item_dict["paramName"]
    return JSONResponse(res)

if __name__ == '__main__':
    uvicorn.run(app,port=5000, host='127.0.0.1')

运行可以在pycharm中右键,也可以在终端下用命令:

uvicorn main:app --reload

上述代码因为都写在一个文件里面,可能看起来有点冗余,后续等看完文档再说。文件运行后,我们可以访问127.0.0.1:5000看我们的swagger接口文档以及redoc文档还有原生json格式:

在这里插入图片描述

swagger:127.0.0.1:5000/docs

redoc:http://127.0.0.1:5000/redoc

openapi:http://127.0.0.1:5000/openapi.json

然后我们就可以用postman、requests发同步请求或者自己用aiohttp发异步请求去测试:
在这里插入图片描述
后台接收的数据也非常简洁:

INFO:     Started server process [728]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:5000 (Press CTRL+C to quit)
INFO:     127.0.0.1:56108 - "POST /api/v1/service/sell?Num=1235151rasadas&orderType=1&user=xx HTTP/1.1" 200

代码部署

gunicorn main:app -w 4 -k uvicorn.workers.icornWorker

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/submarineas/article/details/107147817
今日推荐