环境准备

安装python

这里我准备使用3.9版本的python进行学习,因为fast交互文档的原因,我将从原本使用的3.7版本升级到3.9版本,这里的原因稍后介绍
image

安装fastapi

pip install fastapi

安装ASGI 服务器

pip install "uvicorn[standard]"

uvicon介绍可查看:https://blog.csdn.net/m0_59236602/article/details/136281699
uvicon官网可查看:https://www.uvicorn.org/

创建main.py

from typing import Union

from fastapi import FastAPI

app = FastAPI()


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


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

运行

uvicorn main:app --reload

image

浏览器访问接口:
image

浏览器访问交互式文档:
image

访问交互式文档的时候就可能会出现无法访问的情况,实际这是访问必要的静态资源超时了
image

交互式文档因为需要使用swagger-ui-bundle.js、swagger-ui.css、redoc.standalone.js这几个静态资源文件,但是fastapi自带的是静态资源地址在国外,国内无法正常访问,因此需要进行额外的处理。

解决办法当然已经有大佬找到了,同时官方文档其实也给出了解决办法,但还是大佬的好用,站在巨人的肩膀上吧,可见:
大佬的python库:https://blog.csdn.net/jaket5219999/article/details/135003381
官方解决办法:https://fastapi.tiangolo.com/how-to/custom-docs-ui-assets/

因为我采用的是大佬封装好的库fastapi-cdn-host,这个库需要3.8以上才支持,因此就不得不将自己3.7版本的python升级了
image

最后试试效果:

pip install fastapi-cdn-host
from fastapi import FastAPI
import fastapi_cdn_host

app = FastAPI()
fastapi_cdn_host.patch_docs(app)

@app.get("/")
async def root():
    return {"message": "Hello World"}


@app.get("/hello/{name}")
async def say_hello(name: str):
    return {"message": f"Hello {name}"}

完美访问交互式文档
image

posted @   PyAj  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示