能被選為2021最佳開(kāi)源項(xiàng)目的WEB框架究竟有多棒?
喜歡開(kāi)源的小伙伴,想必或多或少聽(tīng)說(shuō)過(guò)InfoWorld的年度最佳開(kāi)源軟件評(píng)選

今年呢,哦不,應(yīng)該說(shuō)去年,也是評(píng)選出來(lái)了很多優(yōu)秀的開(kāi)源項(xiàng)目,覆蓋了軟件開(kāi)發(fā)、云計(jì)算、機(jī)器學(xué)習(xí)等多個(gè)不同的領(lǐng)域。
TJ君呢今天要和大家分享的就是其中一個(gè)關(guān)于Web API框架的項(xiàng)目:

FastAPI
從名字我們不難想到,這應(yīng)該是一個(gè)與快速構(gòu)建API接口有關(guān)的項(xiàng)目。
的確,F(xiàn)astAPI是一個(gè)高性能、易上手、可快速編碼的Web框架。
項(xiàng)目是基于標(biāo)準(zhǔn)Python類(lèi)型使用Python 3.6+構(gòu)建API應(yīng)用,整個(gè)項(xiàng)目呢相比較其他而言框架,有著8大特點(diǎn):
速度快。
?FastAPI,從名字就可想而知,速度一定是他引以為豪的一項(xiàng)優(yōu)勢(shì),項(xiàng)目擁有非常高效的性能。作者坦言,可以和NodeJS、Go一樣快速。
編碼簡(jiǎn)單
?用了FastAPI,可以提升200%-300%的開(kāi)發(fā)效率(題外話,TJ君倒蠻好奇這個(gè)200-300%是有官方數(shù)據(jù)檢測(cè)出來(lái)的還是作者拍腦袋定下來(lái)的。。。)
減少bug
?可減少40%人為造成的不小心的失誤,好吧,讓人有點(diǎn)敢想象機(jī)器人替代人類(lèi)的那一天。。。
直觀性
?編輯器具有強(qiáng)大的支持功能,可以自動(dòng)補(bǔ)全每一處代碼,減少用戶的debug時(shí)間
易上手
?不需要花太多的時(shí)間去學(xué)習(xí)就可以輕松上手入門(mén)并開(kāi)始使用。
短!
?當(dāng)然不是指男人在意的那個(gè)短。。。這個(gè)短是指可以減少重復(fù)冗余的代碼,從而精簡(jiǎn)代碼減少bug提高性能。
強(qiáng)健壯性
?擁有自動(dòng)交互式機(jī)制,方便獲取生產(chǎn)環(huán)境代碼。
基于標(biāo)準(zhǔn)
?遵循最基本的API的開(kāi)放標(biāo)準(zhǔn),包括OpenAPI、JSON Schema,以使得有較高的兼容性。
$?pip?install?fastapi
--->?100%
對(duì)于Uvicorn或Hypercorn這些系列的產(chǎn)品,可能還需要額外安裝一個(gè)ASGI服務(wù)器。
$?pip?install?"uvicorn[standard]"
--->?100%
我們可以看下main.py包括哪些內(nèi)容:
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}
運(yùn)行服務(wù)代碼:
$?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看到交互式界面:

更進(jìn)一步的操作,可能需要小伙伴自己嘗試摸索啦,作為InfoWorld獲獎(jiǎng)的項(xiàng)目,F(xiàn)astAPI對(duì)于像希望快速建立標(biāo)準(zhǔn)強(qiáng)大Web API的小伙伴,絕對(duì)是一個(gè)利器。官網(wǎng)上還有不少學(xué)習(xí)指引,想試一試的小伙伴,趕緊來(lái)下載吧。如果你有喜歡的其他獲獎(jiǎng)的開(kāi)源項(xiàng)目,也可以給TJ君留言,TJ君會(huì)挑選喜歡人數(shù)多的其他項(xiàng)目進(jìn)行介紹分享哦,記得關(guān)注TJ君哦!
點(diǎn)擊下方卡片,關(guān)注公眾號(hào)“TJ君”
回復(fù)“fastapi”,獲取倉(cāng)庫(kù)地址
最近兩周DD整理了一波面經(jīng),涵蓋阿里、騰訊、頭條等眾多大廠的真實(shí)面經(jīng)分享。最近打算跳槽的小伙伴可以點(diǎn)擊下方,關(guān)注公眾號(hào)“SpringForAll社區(qū)”,發(fā)送關(guān)鍵詞“2022Java面經(jīng)”獲取完整PDF哦!
