FastAPI学习-2(fastapi参数详解)
2020-06-28 05:24
501 查看
1.查看FastAPI源码
参数如下:
- debug: 调试模式,True/False,此属性继承自starlette,在starlette中使用的是property装饰器
- routes:路由列表,默认值为None,此属性继承自starlette,类型为startlette的BaseRoute列表,BaseRoute与starlette的基础类型Scope有关
- title: API文档的标题,默认值FastAPI
- description: API文档的描述,默认为空
- version: API接口的版本号
- openapi_url: OpenAPI文件路径,默认为/opanapi.json
- openapi_prefix: OpenAPI文件路径前缀,默认为空
- default_response_class: 默认响应类型,默认为JSONResponse,此参数继承自startlette的Response,有HTMLResponse、PlainTextResponse、UJSONResponse、RedirectResponse、StreamingResponse、FileResponse和JSONResponse七种,使用时需加载starlette.responses模块
- docs_url: 交互式文档路径,默认为docs
- redoc_url: 可选式文档路径,默认为redoc
- swagger_ui_oauth2_redirect_url: OAuth重定向路径,默认为/docs/oauth2-redirect
- swagger_ui_init_oauth: OAuth重定向字典,默认为None
- middleware: 中间件,默认为空
- exception_handlers: 异常处理方法,默认为None
- on_startup: app启动时调用的方法列表
- on_shutdown: app关闭时调用的方法列表
- extra: 额外可选参数
例子:
debug: 这个参数不多做说明
routes:路由列表,代码如下:
from fastapi import FastAPI from starlette.responses import JSONResponse #此类型不可少 from starlette.routing import Route # request参数不可少 async def homepage(request): return JSONResponse({"index":"主页"}) #此类型格式化不可少 # request参数不可少 async def about(request): return JSONResponse({"index":"关于"}) #此类型格式化不可少 routes = [ Route("/", endpoint=homepage,methods=["GET"]), Route("/about", endpoint=about,methods=["POST"]), ] app=FastAPI(routes=routes) if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command)
接口文档配置
from fastapi import FastAPI app=FastAPI( title="测试接口", description="测试接口描述", version="1.0.1", openapi_url="/openapi/data_manger.json", docs_url="/openapi/doc", redoc_url="/openapi/redoc") @app.get('/') async def login(): return {'index': '测试'} if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command) """ 生产环境中,因为接口不能对外显示,可以设置docs_url=None,redoc_url=None app=FastAPI( title="测试接口", description="测试接口描述", version="1.0.1", openapi_url="/openapi/data_manger.json", docs_url=None, redoc_url=None) """
**middleware** from fastapi import FastAPI from starlette.middleware import Middleware from starlette.middleware.cors import CORSMiddleware middleware = [ Middleware(CORSMiddleware, allow_origins=['*']) ] app=FastAPI(middleware=middleware) @app.get('/') async def login(): return {'index': '测试'} if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command)
default_response_class
from fastapi import FastAPI from starlette.responses import HTMLResponse app=FastAPI(default_response_class=HTMLResponse) @app.get("/") def root(): return "<h1>标题</h1>" if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command)
exception_handlers
from fastapi import FastAPI from starlette.responses import HTMLResponse async def not_found(request, exc): return HTMLResponse(content="404页面", status_code=exc.status_code) exception_handlers = { 404: not_found, } app = FastAPI(exception_handlers=exception_handlers) if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command)
on_startup/on_shutdown使用
from fastapi import FastAPI def startup(): print("服务已启动!") def shutdown(): print("服务已关闭!") app=FastAPI(on_startup=[startup],on_shutdown=[shutdown]) if __name__ == "__main__": import os command = "uvicorn demo12:app --host 127.0.0.1 --port 8888 --reload" os.system(command)
相关文章推荐
- FastAPI学习-3(路由参数详解)
- FastAPI学习-4(cookie参数 Header参数)
- FastAPI学习-4(路由参数验证)
- Python学习笔记--函数参数的详解
- nginx学习总结一(基本介绍和编译参数详解)
- Java数据持久层框架 MyBatis之API学习八(Java API详解)
- Flume学习笔记及配置参数详解
- 大数据学习系列之三 ----- HBase Java Api 图文详解
- Android 学习笔记 Contacts (一)ContentResolver query 参数详解
- 详解ASP.NET Core WebApi 返回统一格式参数
- Android 学习笔记 Contacts (一)ContentResolver query 参数详解
- SSH学习(十)Hibernate常用API详解及源码分析
- SwaggerAPI注解详解,以及注解常用参数配置
- Python学习笔记5:函数参数详解
- 深度学习caffe平台-----裁剪层(Crop Layer)参数及参数详解
- Scala中隐式参数实战详解以及隐式参数在Spark中的应用源码解析之Scala学习笔记-50
- Redis学习笔记--Redis配置文件redis.conf参数配置详解
- Spark学习(三)---Spark Standalone Mode说明及参数配置详解
- Java学习之参数传递详解
- zookeeper学习笔记(四)zkclient客户端api详解文档