自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

用Python構(gòu)建API的八大流行框架

譯文
開(kāi)發(fā) 后端
本文將和您討論八種可將API的開(kāi)發(fā)過(guò)程變得簡(jiǎn)單且快捷的Python框架。其中,Hug和Eve等框架更適合于小型項(xiàng)目,而Django、Flask和Falcon則適合于大型的應(yīng)用程序。

[[424905]]

【51CTO.com快譯】憑借著平緩的學(xué)習(xí)曲線(xiàn)和簡(jiǎn)單直接的語(yǔ)法,Python在全球范圍內(nèi)的受歡迎程度,正在呈指數(shù)級(jí)增長(zhǎng)。該編碼語(yǔ)言往往可以被用于Web開(kāi)發(fā)、軟件開(kāi)發(fā)、數(shù)學(xué)計(jì)算、系統(tǒng)腳本、以及幾乎所有其他的領(lǐng)域。作為開(kāi)發(fā)人員的首選語(yǔ)言,人們除了得益于它的跨平臺(tái)兼容性和代碼的壓縮能力,還可以通過(guò)Python框架,創(chuàng)建出強(qiáng)大的應(yīng)用程序編程接口(API)。

什么是API?

API可謂互聯(lián)網(wǎng)上所有其他平臺(tái)背后的引擎。它們可以協(xié)助不同的應(yīng)用程序,在后臺(tái)相互通信,并保持彼此的聯(lián)系。您可以想象自己在一家餐廳里,手里拿著一份后廚可以烹制的所有菜肴的菜單。那么,接單系統(tǒng)在接受到您的訂單后,會(huì)將其傳遞給后端進(jìn)行處理。后臺(tái)完成后,系統(tǒng)會(huì)從后端獲取“烹飪好的食物”并發(fā)送給用戶(hù)。這便是API的基本作用:幫助用戶(hù)和系統(tǒng)進(jìn)行溝通。

下面,讓我們來(lái)看看八種可用于構(gòu)建API的優(yōu)秀Python框架:

1. Django REST

Django REST為開(kāi)發(fā)人員提供了豐富的功能與選擇。其中,Representational State Transfer(REST)是一種基于Web的架構(gòu)系統(tǒng),可用于數(shù)據(jù)通信。REST的功能包括:一組可瀏覽的Web API、多個(gè)簡(jiǎn)化了的API開(kāi)發(fā)過(guò)程、以及內(nèi)置的身份驗(yàn)證策略。我們可以使用單個(gè)PIP命令,來(lái)輕松地安裝Django REST。當(dāng)然,在安裝Django REST之前,請(qǐng)確保在您的系統(tǒng)上已安裝了Python 3.5或更高的版本。

Django REST不但可以提供便捷的ORM和非ORM源​​的序列化功能,而且該框架受到了 Red Hat、Mozilla和Heroku等流行組織的信任,以及各大活躍社區(qū)開(kāi)發(fā)人員的持續(xù)支持。

2. Flask Restful

顧名思義,F(xiàn)lask Restful是為了簡(jiǎn)化和加速API開(kāi)發(fā)過(guò)程,而量身定制的。作為輕量級(jí)的Python框架,它只需要幾個(gè)命令,就可以完成API的構(gòu)建??梢哉f(shuō),作為公認(rèn)的API工具,F(xiàn)lask能提供直接易用的API開(kāi)發(fā)體驗(yàn)。此外,F(xiàn)lask相對(duì)于​​格式化的字段模塊、以及marshal_with()裝飾器(decorator)等數(shù)據(jù)字段,也非常方便。

作為一個(gè)帶有各種常見(jiàn)API特性的全棧式Python框架工具,F(xiàn)lask通過(guò)使用representation()裝飾器,提供了諸如:XML、CSV和HTML多種數(shù)據(jù)的表示。

當(dāng)然,你若想流暢地運(yùn)行Flask,則需要在自己的機(jī)器上,事先安裝好PyPy 2.7、或 Python 3.5及其更高的版本。

3. Falcon

作為開(kāi)發(fā)人員的首選工具,F(xiàn)alcon可以被用來(lái)創(chuàng)建快速且高性能的API。它符合WSGI(Web服務(wù)器網(wǎng)關(guān)接口,Python Web Server Gateway Interface),能夠與多個(gè)服務(wù)器和平臺(tái)相兼容,而且可以通過(guò)其面向?qū)ο?、和基于?lèi)的界面,給用戶(hù)帶來(lái)無(wú)縫的轉(zhuǎn)換體驗(yàn)。

Falcon使用HTTP和REST架構(gòu),來(lái)協(xié)助創(chuàng)建用戶(hù)友好的設(shè)計(jì)。其REST框架通過(guò)提供開(kāi)發(fā)調(diào)試器,來(lái)全面地簡(jiǎn)化了開(kāi)發(fā)過(guò)程。而且,此類(lèi)調(diào)試器能夠與其內(nèi)置的服務(wù)器實(shí)現(xiàn)良好的配合與協(xié)同。

此外,與其他框架不同的是,F(xiàn)alcon的安裝過(guò)程不但非常簡(jiǎn)單、直接,并且?guī)缀醪恍枰脩?hù)的人工干預(yù)。

4. Connexion

Connexion能夠自動(dòng)處理HTTPS,并使用OpenAPI的各項(xiàng)規(guī)范。也就是說(shuō),您既可以基于Python代碼生成API規(guī)范,又可以遵從OpenAPI規(guī)范,采取不同的路線(xiàn)。當(dāng)然,您必須以YAML格式編寫(xiě)OpenAPI規(guī)范,然后映射到Python功能函數(shù)的各個(gè)端點(diǎn)上,以實(shí)現(xiàn)對(duì)請(qǐng)求及其端點(diǎn)的自動(dòng)驗(yàn)證。

Connexion能夠使用OAuth 2的授權(quán)類(lèi)型,來(lái)處理基于令牌的身份驗(yàn)證。它既自帶有Web Swagger Console UI,又允許用戶(hù)調(diào)用某個(gè)API的端點(diǎn)。此外,Connexion框架還包含有:API版本控制、有效負(fù)載的自動(dòng)序列化等其他方便的功能。

5. FastAPI

顧名思義,F(xiàn)astAPI是用于構(gòu)建API的最快Python框架之一。根據(jù)用戶(hù)的反饋,它可以將開(kāi)發(fā)的速度提高200-300%。目前,F(xiàn)astAPI被廣泛地用于構(gòu)建異步類(lèi)型的Web應(yīng)用,并得到了200多名社區(qū)貢獻(xiàn)者的支持。

該Web框架不但能夠使得開(kāi)發(fā)過(guò)程變得快速且簡(jiǎn)單,還可以提供諸如:交互式API文檔和重復(fù)性代碼消除等,大量成熟的功能。由于是基于Python,因此該框架能將錯(cuò)誤率減少約40%。

在FastAPI中,您也可以使用VSCode和PyCharm之類(lèi),常見(jiàn)編輯器的自動(dòng)完成功能。此外,F(xiàn)astAPI框架還具有不限插件支持、以及集成化的安全協(xié)議等不錯(cuò)的特性。

6.Hug

秉承著“一次編寫(xiě),隨處使用”理念的Hug,能夠方便用戶(hù)創(chuàng)建高效的API、本地包和CLI,并將其使用到代碼中的任何地方。Hug的高速性能,源于它采用Cython進(jìn)行編譯,以及僅在必要時(shí)使用資源。

目前,Hug能夠支持Python 3,您可以使用單個(gè)PIP命令去安裝它。同時(shí),Hug擁有業(yè)內(nèi)最好的API文檔。您可以使用內(nèi)置的hug.test模塊,去測(cè)試API的完整Python棧。

7. Eve

Eve的靈感來(lái)自Flask和Cerberus,并吸取了兩者的精華。該工具專(zhuān)為那些需要讓API的開(kāi)發(fā)過(guò)程變得簡(jiǎn)單、快速和高效的用戶(hù),而量身定制。因此,該框架不但非常適合高效地創(chuàng)建中型的Web服務(wù),而且提供了可定制的端點(diǎn)、分頁(yè)、排序、以及過(guò)濾等功能。

總的說(shuō)來(lái),您在獲得其開(kāi)箱即用的數(shù)據(jù)驗(yàn)證支持的同時(shí),還能調(diào)用Eve的身份驗(yàn)證、緩存、速率限制等高級(jí)功能。同時(shí),該工具也增加了對(duì)于全方位的CRUD操作、以及跨源資源共享(CORS)功能的廣泛支持。此外,您還可以輕松地將Eve與SQL數(shù)據(jù)庫(kù)、MongoDB、Elasticsearch、以及Neo4js相集成。

8. Cornice

作為基于REST的Pyramid框架,Cornice為構(gòu)建和記錄基于REST的Web服務(wù),提供了各種幫助。當(dāng)然,它也可以為各種服務(wù)添加跨域資源共享(CORS)的支持。由于Cornice能夠自動(dòng)使用HTTP規(guī)范,因此Pyramid可以根據(jù)應(yīng)用程序的需要,自行進(jìn)行擴(kuò)展。例如,它可以使用Pyramid的ACL進(jìn)行認(rèn)證授權(quán),并在驗(yàn)證過(guò)程中發(fā)現(xiàn)無(wú)效的數(shù)據(jù),進(jìn)而觸發(fā)400類(lèi)型的錯(cuò)誤。

此外,該框架還允許您使用命令行Python工具—Tox,進(jìn)行各種自動(dòng)化測(cè)試。

小結(jié)

可以說(shuō),API在我們使用的各種互聯(lián)網(wǎng)服務(wù)中持續(xù)發(fā)揮著重要的作用。上文我們討論了八種Python框架,都能夠?qū)PI的開(kāi)發(fā)過(guò)程變得簡(jiǎn)單且快捷。其中,Hug和Eve等框架更適合于小型項(xiàng)目,而Django、Flask和Falcon則適合于大型的應(yīng)用程序。

原文標(biāo)題:How to Build APIs in Python: 8 Popular Frameworks,作者:Wini Bhalla

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:華軒 來(lái)源: 51CTO
相關(guān)推薦

2021-12-07 12:15:07

PythonAPI框架

2009-06-16 15:33:13

AJAX框架jQueryExt JS

2021-01-27 09:00:00

開(kāi)發(fā)PHP框架

2020-11-03 09:00:00

API微服務(wù)JavaScript框

2022-03-04 10:14:17

工業(yè)物聯(lián)網(wǎng)IIOT

2021-09-18 09:00:00

區(qū)塊鏈應(yīng)用JavaScript

2009-06-22 14:07:46

JSF優(yōu)勢(shì)

2015-10-08 09:08:50

Python實(shí)現(xiàn)

2025-01-13 09:00:00

Python文件讀寫(xiě)代碼

2011-04-29 09:15:16

Servlet

2024-04-24 09:52:19

云技能云遷移云計(jì)算

2020-12-19 10:51:16

勒索軟件即服務(wù)RaaS網(wǎng)絡(luò)攻擊w

2022-04-25 13:11:14

Python編程技巧

2025-01-02 12:51:06

2023-12-27 11:45:09

2012-05-10 16:45:54

linux系統(tǒng)

2022-01-05 09:26:56

IT災(zāi)難IT故障

2020-07-30 08:10:08

框架設(shè)計(jì)Spring Secu

2011-08-17 13:55:25

VoIPPBX

2011-07-11 14:01:12

JAVA
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)