FastAPI框架快速构建高性能的api服务

摘要:
Https:从fastapiimportFastAPI app=FastAPI()@app编写以下代码。get(“/”)defread_根():返回{“item_id”:app--reload 4。请求接口成功运行后,再次在浏览器中打开http:“world”}http:“somequery”}5。可视化API文档现在打开http:

https://cloud.tencent.com/developer/article/1431448

使用FastAPI可以非常快速的构建出一套高性能的api服务。下面通过实战演示一下:

fastapi目前仅支持python 3.6+以上版本。

一、安装fastapi和uvicorn

pip install fastapi
pip install uvicorn

二、新建一个main.py文件,编写如下代码

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: str = None):
    return {"item_id": item_id, "q": q}

三、运行接口服务

在命令行,执行下面的命令

uvicorn main:app --reload

四、请求接口

运行成功后在浏览器打开http://127.0.0.1:8000 ,你将在一个JSON格式响应结果:

{'hello':'world'}

再次在浏览器打开http://127.0.0.1:8000/items/5?q=somequery,你将在一个如下JSON格式响应结果:

{'item_id':5,'q':'somequery'}

五、可视化API文档

现在在浏览器中打开http://127.0.0.1:8000/docs,你会看到一个可以交互的api文档

你也可以其他方法的装饰器:

  • @app.post()
  • @app.put()
  • @app.delete()

还有一些比较少见的方法的装饰器:

  • @app.options()
  • @app.head()
  • @app.patch()
  • @app.trace(


建议

你可以使用任意的HTTP方法.

FastAPI不强制任何特定函数。

此处提供的信息,仅供参考,并非必需。

例如,当使用 GraphQL , 你通常会只执行post方法

总结

  • Import FastAPI.
  • 创建一个 app 实例.
  • 编写一个 路径操作装饰器 (比如@app.get("/")).
  • 编写一个路径操作函数 (比如上方的 def root(): ... ).
  • 运行开发服务器(比如uvicorn main:app --reload).

文档: https://fastapi.tiangolo.com/

https://www.jianshu.com/p/daf9150c0466

免责声明:文章转载自《FastAPI框架快速构建高性能的api服务》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇thinkphp 6 消息队列联想小新重装系统下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

获取验证码的URL后边为什么要加上一个值不断变化的参数?

$(function(){ $("#change").click(function(){ //修改src属性 $("#imgCode").attr("src","image.action?dt="+new Date().getTime()); return false;//阻止href动作 }); }); 如上边代码所示,这是因为相同的url请求,浏览器不...

XNA框架基础——从头开始

从头开始 您已经准备好了一切,现在就让我们开始编码吧!本节您将在XNA Studio模板的帮助下创建一个简单的游戏项目,然后在Update和Draw方法中添加少量代码以实现一些小功能。在下一小节学习了SpriteBatch类之后,您将创建您的第一个游戏。 您的第一个项目 打开XNA Game Studio Express,在菜单栏中选择“文件→新建项目...

App性能测试之耗电量

手机app的主要耗电场景有: (1)cpu:复杂的运算逻辑、死循环等会直接导致CPU负载过高,会导致耗电;(2)wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会导致耗电;(3)wifiscan和wifilock:wifiscan和wifilock也会导致手机的wif...

视频播放器测试点

一、常规视频播放器本身测试点视频资源大小测试-能正常渲染视频 正常长度视频10分钟左右、短视频、超长视频5g 视频格式测试-能正常渲染视频 目前支持的视频格式:支持mp4、mov、flv、avi、asf、wmv、webm、mpg 视频录制状态测试-能正常渲染视频,大小屏/横竖屏播放正常 录制时是横屏、竖屏 播放、暂停视频 音量(静音) 速度校验(倍...

Spring方法级别数据校验:@Validated + MethodValidationPostProcessor

每篇一句 在《深度工作》中作者提出这么一个公式:高质量产出=时间*专注度。所以高质量的产出不是靠时间熬出来的,而是效率为王 相关阅读 【小家Java】深入了解数据校验:Java Bean Validation 2.0(JSR303、JSR349、JSR380)Hibernate-Validation 6.x使用案例【小家Java】深入了解数据校验(Bean...

Java之"Mozilla Rhino"引擎(二)

在Java中使用Rhino, 能让你使用类似Groovy, ECMAScript...等等之类的不同动态脚本语言, 其中值得推荐的是ECMAScript, 它是Rhino的默认实现, 同时也在JDK1.6中集成了.使用ScriptEngine的时候, 还有二个接口, 看似不相关, 却是非常有用. 一个是Invocable, 一个是Compilable, 前...