構(gòu)建API驅(qū)動的現(xiàn)代應(yīng)用程序!

API類似于用戶界面,唯一的區(qū)別是用戶是機器或軟件。

讓我們來了解API優(yōu)先的設(shè)計方法,以及為什么遵循它是有意義的。我們還將重點介紹JavaScript及其流行程度,最后,我們將討論構(gòu)建API和微服務(wù)的熱門JavaScript框架。

API優(yōu)先方法

我們都聽說過API優(yōu)先設(shè)計這個術(shù)語。實際上,API優(yōu)先設(shè)計這個術(shù)語是在業(yè)界開始提到云原生應(yīng)用這個術(shù)語之后流行起來的。在開發(fā)單體應(yīng)用程序后的一段時間內(nèi),程序員開始將這些應(yīng)用程序分解為微服務(wù)

所有來自Web、Android或iOS設(shè)備與這些微服務(wù)的交互都必須通過API進行。比如身份認證API文檔處理API溝通工具API等等。因此,對于向這些界面提供數(shù)據(jù)而言,設(shè)計這些API起著至關(guān)重要的作用。這意味著微服務(wù)僅有一種通信媒介,那就是API。

因此,這就引出了“API優(yōu)先設(shè)計原則”。在我們甚至開始編寫微服務(wù)/后端服務(wù)的實現(xiàn)之前,就需要先考慮API的設(shè)計。

注意:API 是業(yè)務(wù)驅(qū)動因素,因此在系統(tǒng)開發(fā)之初就對其進行開發(fā)。

在API優(yōu)先設(shè)計方法中,API被視為一等公民。綜上所述,我們可以總結(jié)出以下三個關(guān)鍵點,可作為API優(yōu)先方法的原則。

有很多公司使用 API 優(yōu)先的方法,例如 Twillio、NETFLIX、Stripe、Algolia、SendGrid、Etsy、Adobe、Amazon 等等。

亞馬遜是最早指導(dǎo)員工使用這種方法的公司之一。這種方法的重要性可以通過一個事件來理解。2002年前后,亞馬遜(Amazon)首席執(zhí)行官杰夫?貝佐斯(Jeff Bezos)發(fā)布了一項名為“貝佐斯指令”(Bezos mandate)的命令,警告任何不遵守這一程序的人將被解雇。

API優(yōu)先方法的好處

很多,這里進行一些簡單的例舉:

現(xiàn)在讓我們探索一種強大的網(wǎng)頁語言,它能幫助我們實現(xiàn)上述討論的方法。

JavaScript:一種網(wǎng)絡(luò)語言

tips:JavaScript 是當(dāng)今和未來最重要的語言之一。

JavaScript 是一種高級的解釋型客戶端腳本語言。它用于使網(wǎng)頁更具交互性。它使我們能夠?qū)崿F(xiàn)復(fù)雜而美麗的設(shè)計。JavaScript 是一種基于對象的腳本語言,它支持封裝、多態(tài)性,在某種程度上也支持繼承。

此外,與 C、C++ 和 Java 不同,它不需要編譯。

JavaScript 可以在瀏覽器、服務(wù)器和任何具有 javascript 引擎的設(shè)備上執(zhí)行。

值得一提的是,JavaScript 與 Java 無關(guān)。那么問題來了,為什么叫JavaScript呢?實際上,當(dāng)JavaScript最初發(fā)布時,它被稱為Mocha,后來它被重命名為實時腳本,然后在Netscape和SUN簽訂許可協(xié)議時重命名為JavaScript。

JavaScript 用于開發(fā)幾乎所有類型的 Web 產(chǎn)品和應(yīng)用程序,例如智能手表、游戲、網(wǎng)站、移動設(shè)備和 Web 應(yīng)用程序。一些最受歡迎的網(wǎng)站,如谷歌、Facebook、Netflix、亞馬遜,都使用 JavaScript 來構(gòu)建他們的產(chǎn)品。

它是否僅限于客戶端?

JavaScript最初被設(shè)計為一種在瀏覽器中運行的客戶端編程語言。但如今,它已經(jīng)取得了長足發(fā)展,其功能遠超當(dāng)初。更重要的是,JavaScript不再僅僅是一種客戶端語言,基于JavaScript的框架也被用于進行服務(wù)器端編程。

Node.js便是此類框架的一個實例。

這并非JavaScript能力的終結(jié)。除了作為客戶端與服務(wù)器端使用之外,它還可以用于設(shè)計單一代碼庫的應(yīng)用程序,并運行于移動設(shè)備(Android、iOS)及Web上。

這樣的框架的一個例子便是ReactJs。

JavaScript有多流行

JavaScript無疑是最當(dāng)今最重要的語言之一。

互聯(lián)網(wǎng)的興起使JavaScript走向了其從未設(shè)想過的領(lǐng)域。當(dāng)前,我們擁有超過100種編程語言,并且每年都有新的語言被引入。在這些語言中,少數(shù)幾種強大的語言能迅速引發(fā)市場的變革,而JavaScript無疑是其中之一。

它一直位列熱門編程語言之列。根據(jù)StackOverflow的數(shù)據(jù),JavaScript是最受歡迎且最常被使用的編程語言。

你知道嗎?在2020年Stack Overflow調(diào)查中,近70%的專業(yè)開發(fā)人員使用JavaScript編碼。

現(xiàn)在讓我們看看一些最流行的JavaScript框架來構(gòu)建API和微服務(wù)。

1. Hapi

Hapi是一個簡單、安全、開源的javascript框架。它用于以最小的開銷構(gòu)建功能強大、可擴展的應(yīng)用程序。它最初是為了處理沃爾瑪?shù)暮谏瞧谖逡?guī)模而開發(fā)的,但現(xiàn)在Hapi仍然是企業(yè)級后端需求的可靠選擇。

Beats Music、Vrbo、Conde Nast、AuthO、Brave等公司都在使用Hapi,并對其感到滿意。

GitHub 上始終提供免費支持。但若想獲得更快的響應(yīng),請加入 Slack 頻道——這里有許多社區(qū)成員常駐并互相幫助。

2. Restify

Restify 專門針對構(gòu)建語義上正確的、適用于大規(guī)模生產(chǎn)環(huán)境的 RESTful Web 服務(wù)進行了優(yōu)化。當(dāng)提到“語義正確”時,意味著嚴格遵循規(guī)范,這是 Restify 項目團隊首要目標之一。

它針對內(nèi)省與性能進行了優(yōu)化,并被大多數(shù)大型Node.js部署所采用。Restify最酷的功能之一在于,每當(dāng)您添加新路由/處理器時,它會自動為您創(chuàng)建DTrace探針。實際上,Restify附帶了三個獨立的客戶端:

詳細開發(fā)指南可在此處找到。http://restify.com/docs/home/

Restify被行業(yè)內(nèi)一些最受尊敬的公司如Netflix、Joyent、Pinterest所采用,用以支持其最大規(guī)模的部署。

3. ExpressJS

ExpressJs是OpenJS基金會的一個項目。

由于其健壯性,許多流行的框架(如Feathers, Kraken, Sails, Kites, NestJs等)都是基于Express的。它是一個最小和靈活的基于node.js的web應(yīng)用程序框架,為web和移動應(yīng)用程序提供了一組強大的功能。

由于它在node.js之上提供了一個層,我們可以有效地訪問JavaScript函數(shù)。它適合使用服務(wù)器呈現(xiàn)編寫應(yīng)用程序,因為它支持許多模板引擎(例如pug和handlebars)。對于API開發(fā),它包含中間處理程序和許多HTTP服務(wù)/實用程序方法。

4. SailsJS

SailsJS 是總部位于德克薩斯州奧斯汀的 Sails 公司旗下構(gòu)建的 MVC 框架。它由 Mike McNeil 開發(fā),旨在協(xié)助他的團隊為初創(chuàng)公司和企業(yè)客戶構(gòu)建可擴展的Node.js項目。自 2012 年發(fā)布以來,Sails 已成為全球使用最廣泛的 Web 應(yīng)用程序框架之一。

它是一款輕量級產(chǎn)品,位于 Express 之上。它與任何前端兼容:Angular、React、iOS、Android。Sails 聲稱通過其強大的 ORM 與任何數(shù)據(jù)庫集成,稱為 Waterline。它使用 Express 處理 HTTP 請求,并使用 Wraps socket.io 來管理 WebSocket。

5. Action Hero

Actionhero 是一個多傳輸 API 服務(wù)器,具有集成集群功能和延遲任務(wù)。Actionhero 的目標是創(chuàng)建一個易于使用的工具包,用于為 HTTP、WebSocket 等制作可重用和可擴展的 API。它是從頭開始構(gòu)建的,包括我們期望從現(xiàn)代 API 框架中獲得的所有功能。

Actionhero 擅長的工作負載類型包括生成和使用 API、從數(shù)據(jù)庫存儲和檢索數(shù)據(jù)、修改文件和類似作業(yè)。

Actionhero 有 5 個關(guān)鍵概念構(gòu)成每個應(yīng)用程序:操作、任務(wù)、初始值設(shè)定項、聊天和服務(wù)器。

6. LoopBack

LoopBack 是一個基于 Express 的高度可擴展的開源 Node.js 和 TypeScript 框架。它允許我們快速創(chuàng)建由數(shù)據(jù)庫和 SOAP 或 REST 服務(wù)等后端系統(tǒng)組成的 API 和微服務(wù)。

它是一種新的、改進的編程模型,具有依賴注入和新概念,如組件、混合、存儲庫等,這使得它最具可擴展性。LoopBack 允許我們使用 OpenAPI 到 GraphQL 為任何 REST API 創(chuàng)建 GraphQL 接口。

我們只需按照入門指南中的步驟即可立即開始使用 Loopback。他們的文檔根據(jù)四個象限進行分類,它們是:

GoDaddy、Symantec、Sapient、Fundrails、ShoppinPal 和 WhiteBoard 等公司正在廣泛使用 LoopBack。

7. FeathersJs

Feathers 是一套工具及架構(gòu)模式,旨在簡化創(chuàng)建可擴展的 REST API 和實時應(yīng)用程序的過程。我們能夠在幾分鐘內(nèi)構(gòu)建原型,并在幾天內(nèi)完成生產(chǎn)級別的應(yīng)用開發(fā)。Feathers 能夠與任何后端技術(shù)對接,支持超過十種數(shù)據(jù)庫,并且能夠與諸如 React、VueJS、Angular、React Native、Android 或 iOS 等任何前端技術(shù)協(xié)同工作。

開始創(chuàng)建第一個Feathers應(yīng)用程序,請遵循快速入門指南。如遇困難或有任何問題,您可以通過Slack、GitHub、StackOverflow、Telegram等不同渠道尋求幫助。

8. KoaJS

Express 團隊設(shè)計了 Koa。其目標是成為 web 應(yīng)用程序和 API 的一個更小、更具表現(xiàn)力且更為健壯的基礎(chǔ)。Koa 在其核心中不捆綁任何中間件,而是提供了一套優(yōu)雅的方法集,使得編寫服務(wù)器既快速又令人愉悅。

通過利用 async 函數(shù),Koa 使我們得以摒棄回調(diào),并極大地提升了錯誤處理能力。只需三步命令即可開始使用:

$ <a >nvm install</a> 7
$ npm i koa
$ node my-koa-app.js

9. AdonisJS

AdonisJs 是一個基于 Node.js 的 MVC 框架,它由一個充滿活力的社區(qū)維護和支持。它提供了一個穩(wěn)定的生態(tài)系統(tǒng)來編寫服務(wù)器端應(yīng)用程序,使您能夠?qū)W⒂跇I(yè)務(wù)需求,而不是糾結(jié)于選擇或不選擇哪個包。它就像任何其他 npm 模塊一樣,只不過在其之上添加了一些代碼以確保與 AdonisJs 應(yīng)用程序順暢協(xié)作。

使用 AdonisJs 沒有硬性先決條件,但對 JavaScript、異步編程和 Node.js 有傳統(tǒng)的理解是非常有幫助的。請務(wù)必通讀安裝指南。

如果有任何疑問或錯誤,可以通過以下渠道與 AdonisJs 團隊溝通。

10. TotalJS

Total.js平臺是一個用JavaScript編寫的庫、包、UI組件、實踐和完整產(chǎn)品的集合。該平臺的基礎(chǔ)是一個名為Total.js的服務(wù)器端框架和一個名為jComponent的客戶端庫。

這兩個部分都是從頭開始編寫的。

在大多數(shù)情況下,我們不需要在Total.js平臺上使用任何依賴項,因為它包含了我們開發(fā)所需的一切。

整個Total.js平臺——產(chǎn)品、庫、模塊、包和UI組件在MIT許可下是開源的。

11. Moleculer

molecule是一個快速、現(xiàn)代、強大的Node.js微服務(wù)框架。它為構(gòu)建和管理微服務(wù)提供了許多特性,比如:

12. Fastify

使用 Fastify 開始您的旅程。

Fastify 高度專注于以最小的開銷和強大的插件架構(gòu)提供最佳的開發(fā)人員體驗。happy 和 express 激發(fā)了它的靈感,它是業(yè)內(nèi)最快的 Web 框架之一。

npm install fastify

它提供高性能,并取決于代碼的復(fù)雜性;它每秒最多可以處理 30,000 個請求。它可以通過其鉤子、插件和裝飾器完全擴展。

注意:即使它不是強制性的,F(xiàn)astify 也建議使用 JSON Schema 來驗證您的路由并序列化您的輸出,F(xiàn)astify 在內(nèi)部以高性能函數(shù)編譯 Schema。

結(jié)論

構(gòu)建API可能頗具挑戰(zhàn)性,但有了合適的框架,事情就會輕松許多。請瀏覽上述列出的適用于您下一個API及微服務(wù)的框架,并挑選最適宜的一款。一旦您的API準備就緒,切勿忘記對其進行監(jiān)控。

原文鏈接:12 Popular JavaScript Frameworks to Build API and Microservices

熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
3000+提示詞助力AI大模型
和專業(yè)工程師共享工作效率翻倍的秘密
熱門推薦
一個賬號試用1000+ API
助力AI無縫鏈接物理世界 · 無需多次注冊
返回頂部
上一篇
如何通過訂閱模型和策略銷售API?
下一篇
5 大 PHP REST API 框架
国内精品久久久久影院日本,日本中文字幕视频,99久久精品99999久久,又粗又大又黄又硬又爽毛片
免费的国产精品| 日本va欧美va瓶| 亚洲美女在线国产| 成人av综合在线| 国产精品久久久久久久久久久免费看 | 五月激情综合色| 在线不卡一区二区| 麻豆国产一区二区| 久久久精品国产免大香伊| 国模一区二区三区白浆| 国产精品免费看片| 91精彩视频在线观看| 日韩激情在线观看| 久久无码av三级| 色综合中文字幕国产 | 欧美男男青年gay1069videost | 亚洲国产精品ⅴa在线观看| 国产高清在线精品| 亚洲精品成人精品456| 欧美日韩一区国产| 国产精品自拍网站| 亚洲欧美另类图片小说| 日韩一级视频免费观看在线| 成人av影院在线| 日韩制服丝袜av| 国产精品久久一卡二卡| 在线不卡中文字幕| 91国产成人在线| 国产麻豆视频一区| 日韩av不卡在线观看| 亚洲精品日日夜夜| 国产色产综合色产在线视频| 91精品国产色综合久久久蜜香臀| 91农村精品一区二区在线| 国产精品亚洲视频| 麻豆精品一区二区av白丝在线| 中文字幕日韩一区| 久久精品人人做人人综合| 日韩欧美在线网站| 欧美精品tushy高清| 欧美在线观看禁18| 91蜜桃网址入口| av在线一区二区三区| 日韩电影在线一区二区三区| 亚洲精品久久嫩草网站秘色| 亚洲欧美综合色| 国产精品美女久久久久aⅴ | 青青国产91久久久久久| 亚洲午夜久久久久中文字幕久| 亚洲素人一区二区| 亚洲欧美色一区| 亚洲欧美日韩国产另类专区| 亚洲欧洲三级电影| 亚洲少妇最新在线视频| 国产精品国产三级国产有无不卡| 国产女人水真多18毛片18精品视频| 精品国产第一区二区三区观看体验| 日韩欧美一级精品久久| www精品美女久久久tv| 国产香蕉久久精品综合网| 久久久美女毛片| 国产精品久久久久久久裸模| 国产精品国产自产拍高清av| 18欧美亚洲精品| 一区二区三区欧美视频| 亚洲丶国产丶欧美一区二区三区| 久久嫩草精品久久久精品| 亚洲欧美国产77777| 欧美性感一类影片在线播放| 欧美精品aⅴ在线视频| 日韩午夜三级在线| 中文字幕av一区二区三区| 国产精品美女久久久久aⅴ| 亚洲欧美视频一区| 老司机精品视频线观看86| 成人性生交大合| 欧美日韩黄色影视| 日本一区二区三区国色天香| 一区二区三区视频在线看| 精品一区精品二区高清| 北岛玲一区二区三区四区| 欧美精品精品一区| 18欧美亚洲精品| 国产高清不卡二三区| 欧美亚洲国产一区二区三区 | 国产成人综合亚洲网站| 欧美色精品在线视频| 久久久久国产免费免费| 婷婷久久综合九色国产成人 | 亚洲不卡在线观看| 懂色av噜噜一区二区三区av| 制服丝袜亚洲色图| 亚洲影院免费观看| 成人综合在线观看| 欧美大片拔萝卜| 亚洲国产一区二区在线播放| 99久久伊人久久99| 国产日韩精品一区二区浪潮av | 久久久精品天堂| 蜜臀va亚洲va欧美va天堂 | 久久综合成人精品亚洲另类欧美| 亚洲欧美另类小说视频| 成人综合激情网| 久久久久久久久久久黄色| 免费日本视频一区| 在线综合+亚洲+欧美中文字幕| 国产精品网站导航| 国产在线不卡视频| 久久综合资源网| 国精产品一区一区三区mba桃花| 欧美三区在线观看| 午夜精品一区二区三区免费视频 | 成人国产精品免费观看动漫| 久久在线免费观看| 国产综合色精品一区二区三区| 制服丝袜亚洲网站| 日本aⅴ亚洲精品中文乱码| 欧美色图激情小说| 午夜久久久影院| 日韩欧美国产不卡| 国产一区二区三区国产| 欧美激情一区在线观看| 成人高清在线视频| 99久久婷婷国产综合精品| 亚洲天堂2016| 国产精品系列在线观看| 精品久久人人做人人爱| 国产大陆a不卡| 日韩一区欧美小说| 在线观看国产一区二区| 首页亚洲欧美制服丝腿| 精品久久久久久久久久久久久久久久久| 亚洲成av人片在线| 精品国产百合女同互慰| 成人黄页在线观看| 亚洲成人免费在线| 欧美—级在线免费片| 欧美日韩精品久久久| 国产一区二区在线视频| 亚洲美女一区二区三区| 精品国产麻豆免费人成网站| 99久久久无码国产精品| 美脚の诱脚舐め脚责91| 中文字幕亚洲一区二区av在线| 欧美一级生活片| 色香色香欲天天天影视综合网| 日韩av电影免费观看高清完整版| 国产亚洲成年网址在线观看| 欧美日韩国产美| 91亚洲精品乱码久久久久久蜜桃| 日韩高清在线一区| 中文字幕亚洲一区二区av在线| 欧美一级精品在线| 在线观看日韩av先锋影音电影院| 国产精品1区2区| 日韩电影在线观看网站| 一区二区三区四区高清精品免费观看 | 六月丁香婷婷久久| 国产午夜亚洲精品理论片色戒 | 国产不卡免费视频| 男女男精品网站| 日韩美女视频一区二区| 欧美精品一区二区三区很污很色的 | 精品国产一区二区三区不卡| 91麻豆国产精品久久| 粉嫩av一区二区三区粉嫩| 久久国产精品一区二区| 五月天久久比比资源色| 亚洲在线一区二区三区| 亚洲最大成人综合| 亚洲一区二区视频| 亚洲精品高清在线观看| 综合激情网...| 亚洲色图一区二区三区| 中文字幕在线观看不卡视频| 国产精品日韩成人| 综合久久一区二区三区| 成人免费一区二区三区视频| 一区二区三国产精华液| 一级精品视频在线观看宜春院| 夜夜嗨av一区二区三区| 一区二区久久久久久| 亚洲超碰精品一区二区| 日韩国产一区二| 国产在线不卡视频| 成人免费高清视频在线观看| 99精品视频在线观看| 欧美色大人视频| 日韩午夜在线观看视频| 精品乱码亚洲一区二区不卡| 国产精品三级电影| 亚洲成人精品在线观看| 蜜臀av国产精品久久久久 | 久久亚洲综合av| 亚洲图片欧美激情| 亚洲h在线观看| 国产一区二区免费看| 色综合久久中文综合久久牛| 欧美一区二区三区视频| 国产精品成人免费在线|