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

用于構(gòu)建API和微服務(wù)的流行JavaScript框架

譯文
開發(fā) 前端
在本文中,我們將羅列并討論各種用于構(gòu)建API和微服務(wù)的最流行JavaScript框架,以方便您在實(shí)際應(yīng)用構(gòu)建時予以采用。

用于構(gòu)建API和微服務(wù)的流行JavaScript框架

【51CTO.com快譯】近年來,隨著jQuery、JSON(JavaScript的對象表示法)、MongoDB、ES6 Generators的廣泛使用,JavaScript發(fā)展出了許多易于使用、并能與多種編程語言相集成的框架、庫和工具。其中包括:NodeJS、Angular、React、Vue、Meteor、Google Polymer、Mercury、以及Backbone等。而作為后端開發(fā)人員中最常用的編程語言,JavaScript通過如下優(yōu)勢,為軟件開發(fā)人員節(jié)省了大量的資源和時間:

1.客戶端處理能力

2.易于學(xué)習(xí)的語法

3.簡單且易于實(shí)現(xiàn)

4.易于調(diào)試和測試

5.能夠快速執(zhí)行

6.易于擴(kuò)展到網(wǎng)頁上

7.帶有內(nèi)置JavaScript的瀏覽器

8.提供基于事件的編程

9.提供動態(tài)內(nèi)容

基于上述優(yōu)勢,根據(jù)GitHub(擁有全球數(shù)百萬開發(fā)用戶的最大存儲庫)的統(tǒng)計,JavaScript是產(chǎn)生打開和拉取請求(即:編寫的代碼量)數(shù)量最多的編程語言。

下面,我們將討論那些用于構(gòu)建API和微服務(wù)的JavaScript流行框架。注意,這里說的API是一種通信模式,而微服務(wù)則是一種架構(gòu)模式。我們應(yīng)當(dāng)區(qū)別對待。

用于構(gòu)建API的十大流行JavaScript框架

1.Hapi

作為一種非常強(qiáng)大的JavaScript框架,Hapi通過最小的開銷和各種開箱即用(out-of-box)的功能,來構(gòu)建安全、魯棒且可擴(kuò)展的API。憑借著全球性的開發(fā)人員社區(qū),Hapi框架擁有完善的插件系統(tǒng)和如下關(guān)鍵功能。

主要特征

  • 可實(shí)現(xiàn)緩存
  • 具備錯誤處理能力
  • 提供日志
  • 帶有輸入驗證
  • 提供基于配置的功能

作為一種配置驅(qū)動的模式,Hapi具有在特定IP上創(chuàng)建服務(wù)器的獨(dú)特能力。Paypal和Disney就在它們的應(yīng)用中用到了Hapi的此類能力。

2. Express

由Node核心項目團(tuán)隊成員--TJ Holowaychuk構(gòu)建的Express,是一個快速、且不受限制的簡約式JavaScript框架。它可以為Web和移動應(yīng)用程序提供一系列強(qiáng)大的功能。在龐大的開發(fā)人員社區(qū)的支持下,它的所有核心功能得到了不斷更新與迭代。

Express支持各種程序包,以及諸如Pug、Mustache、EJS等模板引擎。Express的API能夠充當(dāng)HTTP服務(wù)器,通過配置路由,來實(shí)現(xiàn)在前端和數(shù)據(jù)庫之間發(fā)送/接收各種請求。

3. Restify

該Web服務(wù)框架利用連接樣式中間件(connect style middleware),來構(gòu)建REST API。Restify對構(gòu)建正確語義的RESTful Web服務(wù)進(jìn)行了優(yōu)化,可供生產(chǎn)環(huán)境直接使用。此外,進(jìn)行了性能優(yōu)化的Restify,還可以被用于一些大型Node.js的部署。

主要特征

  • 語義正確
  • 可調(diào)試
  • 面向生產(chǎn)環(huán)境

目前,用到Restify的知名公司包括:Netflix、Pinterest、Napster、以及npm等。

4. Sails

Sails框架以使用可擴(kuò)展性的、面向服務(wù)的架構(gòu),來構(gòu)建數(shù)據(jù)驅(qū)動型API而聞名。它與大家熟悉的Ruby on Rails等MVC模式框架非常類似。Sails可以在幾周內(nèi)為您構(gòu)建出實(shí)用的、可用于生產(chǎn)環(huán)境的Node應(yīng)用程序。

用戶可以通過Sails提供的數(shù)據(jù)驅(qū)動式API,來開發(fā)聊天應(yīng)用、儀表板、以及多人游戲等軟件。同時,Sails能夠使用Express來處理Node上的HTTP請求,并使用waterline進(jìn)行各種與對象相關(guān)(object-related)的數(shù)據(jù)庫映射。

主要特征

  • 自動生成的REST API
  • 適用于任何數(shù)據(jù)庫
  • 前端透明
  • 可輕松地集成Web套接字
  • 提供專業(yè)的支持
  • 完全由JavaScript編寫

目前,用到Sails的知名公司包括:Microsoft、WikiJobs、Philips、DXL、Scout、MOBOOM、以及broadsoft等。

5. Loopback

Loopback是一種用于構(gòu)建API和微服務(wù)的高度可擴(kuò)展性JavaScript(包括Node和TypeScript)框架。它允許用戶創(chuàng)建出能夠與任何類型Web客戶端協(xié)同的,并可以輕松地橋接到后端資源的API。

作為一種開放源代碼的框架,Loopback允許那些具有最少或幾乎沒有編程背景的用戶創(chuàng)建動態(tài)的REST API。由于默認(rèn)使用的是widget-API資源管理器,因此它也能協(xié)助創(chuàng)建SDK和API文檔。

主要特征

  • 提供由OpenAPI Spec驅(qū)動的REST API
  • 具有高度可擴(kuò)展性
  • 對GraphQL支持
  • 支持Swagger(一種Rest API)
  • 提供更好的用戶管理策略
  • 提供第三方登錄和存儲服務(wù)
  • 提供模型關(guān)系支持(Model-relation-support)

6. Koa

由Express的團(tuán)隊創(chuàng)建的NodeJS下一代Web框架--Koa,旨在為API和Web應(yīng)用程序提供更具表現(xiàn)力、且功能更強(qiáng)大的基礎(chǔ)架構(gòu)。值得注意的是,Koa要求NodeJS的版本至少為0.11或更高。

主要特征

  • Koa能夠提供那些從未出現(xiàn)在瀏覽器中的ECMAScript方法
  • 允許在不使用回調(diào)的情況下,大幅提高錯誤的處理能力
  • 提供了一套“優(yōu)雅”的方法,來快速編寫服務(wù)器端程序
  • 提供更多的自定義選項
  • 通過支持syn和await關(guān)鍵字,來管理各種代碼

7. Total.js

Total.js是一個開放、穩(wěn)定且免費(fèi)的JavaScript框架,可用于構(gòu)建快速、且功能強(qiáng)大的REST服務(wù)、網(wǎng)站和實(shí)時應(yīng)用。TotalJS能夠與Angular、Polymer、Backbone、Bootstrap、以及其他客戶端JavaScript框架完全兼容。

值得一提的是,Total.js Eshop是一個針對移動設(shè)備,進(jìn)行了用戶界面優(yōu)化的版本,所有高級會員都可以下載到該版本。

主要特征

  • 可擴(kuò)展和異步
  • 易于使用
  • 支持?jǐn)?shù)組和其他原型
  • 支持MVC架構(gòu)

8. Feathers

Feathers是一個適用于實(shí)時應(yīng)用和REST API的輕量級JavaScript框架。它可以在幾分鐘之內(nèi)構(gòu)建出原型,并讓對應(yīng)的應(yīng)用程序能夠在幾天內(nèi)投入生產(chǎn)環(huán)境。Feathers不但支持各種數(shù)據(jù)庫,并且可以與諸如React、React-native、VueJS、Angular、Android或iOS等,許多前端技術(shù)一起使用。當(dāng)然,它也可以與任何后端技術(shù)進(jìn)行交互。

主要特征

  • 提供靈活的插件
  • 具有服務(wù)優(yōu)先的原則
  • 支持不可預(yù)知的數(shù)據(jù)存儲(Datastore agnostic)
  • 提供實(shí)時的REST API
  • 具有通用性

9. Fastify

顧名思義,F(xiàn)astify是一種極快的Web框架。它高度專注于以最少的開銷和強(qiáng)大的插件架構(gòu),為開發(fā)人員提供最佳的使用體驗。由于受到了Hapi和Express框架的極大啟發(fā),F(xiàn)astify以其高效的服務(wù)器,不但提供了較低的架構(gòu)成本,而且能夠交付讓用戶滿意的、更好的負(fù)載響應(yīng)能力。

核心功能

  • 提供基于模式(Schema-based)的支持
  • 具有可擴(kuò)展性
  • 對開發(fā)人員友好
  • 提供日志
  • 對TypeScript(是JavaScript的一個超集)友好
  • 具有高性能

10. Actionhero

由Typescript編寫的Actionhero是一種可重用、可擴(kuò)展且快速的NodeJS API服務(wù)器。它適用于在Linux、OS X和Windows上運(yùn)行的、無狀態(tài)和有狀態(tài)的應(yīng)用程序。該框架通過入門級的REST API方法,提供了各種快速的路由、版本控制、測試、以及翻譯工具。

主要特征

  • 易于使用
  • 內(nèi)置各項任務(wù)
  • 面向集群
  • 提供路由
  • 支持本地化

目前,用到Actionhero的知名公司包括:Samsung、TaskRabbit、以及madglory等。

用于構(gòu)建微服務(wù)的四大流行JavaScript框架

在微服務(wù)框架支持的情況下,JavaScript的注釋語法(Annotation Syntax)功能、及其可讀性,對于Java微服務(wù)的開發(fā)非常實(shí)用??偟恼f來,Java通過提供以下功能來支持微服務(wù)的開發(fā)和部署:

  • 用戶界面
  • 各種模型組件
  • 與后端資源的連接

此外,如下Java EE標(biāo)準(zhǔn)也適用于微服務(wù)應(yīng)用:

  • 針對API的JAX-RS
  • 用于數(shù)據(jù)處理的JPA
  • 用于依賴項注入和生命周期管理的CDI

下面我們來討論一些可以簡化微服務(wù)架構(gòu)開發(fā)的流行Java框架。

1. Spring Boot

Spring Boot可以方便用戶創(chuàng)建獨(dú)立運(yùn)行的、基于Spring的應(yīng)用程序。它們能夠獨(dú)立于不同的語言,實(shí)現(xiàn)各種反轉(zhuǎn)控制和面向切面(aspect-oriented)的編程。

主要特征

  • 可創(chuàng)建獨(dú)立的Spring應(yīng)用程序
  • 能直接嵌入Tomcat、Jetty或Undertow中(但不部署WAR文件)
  • 提供入門級的依賴項,以簡化構(gòu)建的配置
  • 提供各項運(yùn)行狀況檢查、指標(biāo)和外部配置等面向生產(chǎn)環(huán)境的功能
  • 無需XML配置
  • 無需代碼生成

2. Dropwizard

Dropwizard能夠讓用戶構(gòu)建操作友好且高性能的RESTful Web服務(wù)。用戶能夠通過該框架提供的穩(wěn)定且成熟的Java庫,來輕松地整合到各種輕量級的程序包中。

主要特征

  • 提供對復(fù)雜配置的、開箱即用式的支持
  • 提供各種操作工具
  • 提供日志記錄
  • 提供各種指標(biāo)

總的說來,Dropwizard能夠讓用戶在最短的時間內(nèi),交付出具有產(chǎn)品級質(zhì)量的Web服務(wù)。

3. Spark

作為一種微服務(wù)框架,Spark可以讓用戶用最少的精力,用Kotlin和Java 8快速地構(gòu)建Web應(yīng)用。通過流暢的、具有聲明性和表達(dá)性的語法,Spark不但提高了代碼的生產(chǎn)力,還能讓用戶充分利用到JVM。

目前,用到Spark的知名公司包括:Asana、Gosu、Apache、以及Playlyfe等。

4. Restlet

Restlet能為大量Java開發(fā)人員提供支持,以便他們構(gòu)建出更好的Web API。用戶可以根據(jù)Apache軟件許可準(zhǔn)則的相關(guān)條款,免費(fèi)下載和使用這款完全開源的框架。

主要特征

  • 原生的REST支持
  • 提供廣泛的用例支持
  • 提供靈活的配置
  • 安全且可擴(kuò)展
  • 提供完整的網(wǎng)絡(luò)服務(wù)器
  • 具有各種可用的表示形式
  • 提供廣泛的連接器組

除了上述介紹到的各種架構(gòu),以Netflix Eureka、Consul或Amalgam8為代表的服務(wù)發(fā)現(xiàn)解決方案,也能夠提供與Java微服務(wù)的輕松連接。

小結(jié)

上述JavaScript框架的列表,便是我根據(jù)JavaScript社區(qū)中的使用率和普遍性的綜合排名,收集到的用于構(gòu)建API和微服務(wù)的各種流行框架。您具體應(yīng)該采用哪一種框架,還是取決于計劃構(gòu)建的實(shí)際應(yīng)用類型。

原文標(biāo)題:Popular JavaScript Frameworks to Build API and Microservices,作者: Kanchan Sharma

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

 

責(zé)任編輯:龐桂玉 來源: 51CTO
相關(guān)推薦

2021-09-22 09:00:00

Python框架開發(fā)

2021-12-07 12:15:07

PythonAPI框架

2022-02-17 11:41:26

JavaScript框架編程語言

2019-10-21 09:29:00

JavaScriptHTML數(shù)據(jù)庫

2022-02-15 09:00:00

Java開發(fā)框架

2011-03-21 13:01:10

2021-03-05 11:09:46

Go框架微服務(wù)

2024-12-23 00:22:55

2021-12-29 08:30:48

微服務(wù)架構(gòu)開發(fā)

2023-06-28 08:00:00

JavaScript開發(fā)

2022-08-12 07:39:30

數(shù)字化集成微服務(wù)

2022-10-10 08:00:00

微服務(wù)Spring Boo容器

2011-06-16 08:22:04

JavaScriptjQuery

2018-05-04 14:34:06

微服務(wù)SOAAPI

2018-12-03 08:00:00

微服務(wù)gRPC

2024-04-10 09:36:17

Spin開源框架

2022-06-07 08:19:30

gRPCBallerina微服務(wù)

2010-07-23 08:22:00

動態(tài)語言框架

2017-01-19 09:57:18

APP開發(fā)JavaScript

2024-01-09 09:09:45

RESTGraphQL
點(diǎn)贊
收藏

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