能被选为2021最佳开源项目的WEB框架究竟有多棒?
共 1811字,需浏览 4分钟
·
2022-01-23 15:03
喜欢开源的小伙伴,想必或多或少听说过InfoWorld的年度最佳开源软件评选
今年呢,哦不,应该说去年,也是评选出来了很多优秀的开源项目,覆盖了软件开发、云计算、机器学习等多个不同的领域。
TJ君呢今天要和大家分享的就是其中一个关于Web API框架的项目:
FastAPI
从名字我们不难想到,这应该是一个与快速构建API接口有关的项目。
的确,FastAPI是一个高性能、易上手、可快速编码的Web框架。
项目是基于标准Python类型使用Python 3.6+构建API应用,整个项目呢相比较其他而言框架,有着8大特点:
速度快。
FastAPI,从名字就可想而知,速度一定是他引以为豪的一项优势,项目拥有非常高效的性能。作者坦言,可以和NodeJS、Go一样快速。
编码简单
用了FastAPI,可以提升200%-300%的开发效率(题外话,TJ君倒蛮好奇这个200-300%是有官方数据检测出来的还是作者拍脑袋定下来的。。。)
减少bug
可减少40%人为造成的不小心的失误,好吧,让人有点敢想象机器人替代人类的那一天。。。
直观性
编辑器具有强大的支持功能,可以自动补全每一处代码,减少用户的debug时间
易上手
不需要花太多的时间去学习就可以轻松上手入门并开始使用。
短!
当然不是指男人在意的那个短。。。这个短是指可以减少重复冗余的代码,从而精简代码减少bug提高性能。
强健壮性
拥有自动交互式机制,方便获取生产环境代码。
基于标准
遵循最基本的API的开放标准,包括OpenAPI、JSON Schema,以使得有较高的兼容性。
$ pip install fastapi
---> 100%
对于Uvicorn或Hypercorn这些系列的产品,可能还需要额外安装一个ASGI服务器。
$ pip install "uvicorn[standard]"
---> 100%
我们可以看下main.py包括哪些内容:
from typing import Optional
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: Optional[str] = None):
return {"item_id": item_id, "q": q}
运行服务代码:
$ uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.
然后就可以在http://127.0.0.1:8000/docs看到交互式界面:
更进一步的操作,可能需要小伙伴自己尝试摸索啦,作为InfoWorld获奖的项目,FastAPI对于像希望快速建立标准强大Web API的小伙伴,绝对是一个利器。官网上还有不少学习指引,想试一试的小伙伴,赶紧来下载吧。如果你有喜欢的其他获奖的开源项目,也可以给TJ君留言,TJ君会挑选喜欢人数多的其他项目进行介绍分享哦,记得关注TJ君哦!
点击下方卡片,关注公众号“TJ君”
回复“fastapi”,获取仓库地址
最近两周DD整理了一波面经,涵盖阿里、腾讯、头条等众多大厂的真实面经分享。最近打算跳槽的小伙伴可以点击下方,关注公众号“SpringForAll社区”,发送关键词“2022Java面经”获取完整PDF哦!