Nein, Sie benötigen Express nicht in Ihrer REST-API auf Node.js.

Bild

Über Alternativen zu Express, wo und warum es sich lohnt, auf Express'a und kleine Übersetzungsmaße zu verzichten


Express


Express ist ein einfaches, gut dokumentiertes, stark unterstütztes und am häufigsten heruntergeladenes Node.js-Framework.
Wenn Sie versuchen zu googeln, wie ein einfacher HTTP-Server erstellt wird, erhalten Sie höchstwahrscheinlich bei der ersten Anfrage Folgendes:

const server = require('express')({}) server.get('/', (req, res) => { res.send('Hello World!') }); server.listen(3000); 

REST-APIs


In der Architektur von Anwendungen, die von Unternehmen entwickelt wurden, spielen REST-API und REST-Services weiterhin eine grundlegende Rolle, da HTTP weiterhin als Hauptprotokoll für die Kommunikation verwendet wird. Dies bedeutet, dass ein Programmierer, der eine neue Anwendung oder einen neuen Mikrodienst erstellen wird, die REST-API anstelle beispielsweise einer „Ereigniswarteschlange“ verwendet.

Mit dem Einsetzen der Popularität der Verwendung von Mikrodiensten ist die REST-API bestrebt, so klein wie möglich zu sein und eine minimale Anzahl von Operationen auszuführen. Dies bedeutet, dass die Anzahl der Endpunkte in der entwickelten API direkt proportional zur Anzahl der Mikrodienste zunimmt und für jede einfache Aktion ein eigener Endpunkt vorhanden ist. Um beispielsweise Benutzerdaten in der Datenbank zu ändern, wird zuerst die Methode / user / search aufgerufen, um die ID des benötigten Benutzers zu ermitteln, und erst dann wird die Methode / user / update mit dem vor dieser ID an uns zurückgegebenen Parameter aufgerufen um diesen Vorgang auszuführen (Hinweis Ed.).
Ja, REST-APIs müssen schnell sein, sie müssen schnell sein!
Beim Erstellen einer hoch geladenen Anwendung mithilfe der REST-API wird zunehmend das Mikrodienstmuster verwendet. Solche Anwendungen basieren auf API-Gateways. Die Gateway-API ist in der Tat ein Proxyserver, auf den der Benutzer zugreift, und dieser Proxyserver greift bereits auf den am wenigsten belasteten Mikrodienst zu. In der Regel löst die Gateway-API auch kleine Aufgaben wie:

  • SSL-Zertifikatverarbeitung
  • Lastverteilung
  • Autorisierung und Authentifizierung
  • Caching
  • Inhaltskomprimierung anfordern
  • ...

Express ist jedoch zu schwer und zu langsam.


Express ist großartig, voller Funktionen ... aber es ist auch schwer und langsam für kleine Zwecke zu verwenden, wie zum Beispiel die REST-API in Mikrodiensten


Die neueste Version der Bibliothek (4.16.4) hängt von 30 integrierten Modulen ab. Während des Entwicklungsprozesses werden diesem Modul etwa 20 weitere hinzugefügt, was die Anwendung letztendlich zu schwer macht, um als Mikrodienst verwendet zu werden.

Bild

Im Vergleich zu anderen Bibliotheken ist Express für langsame Zwecke zu langsam, wenn Sie keine komplexen Abfragen durchführen müssen. Die folgende Grafik zeigt einen Vergleich der Ausführung einer einfachen Anforderung für ein JSON-Dokument.

Bild

Bild

Die im letzten Bild gezeigten Messungen zeigen nicht, dass Express im Allgemeinen langsam ist. Sie zeigen, dass Sie die Leistung Ihres Prozessors verdoppeln müssen, um einfache Vorgänge auszuführen. Infolgedessen erhöht sich die monatliche Zahlung für die Verwendung von AWS, Google Cloud, MS Azure oder ein anderer Cloud-Dienst, den Sie verwenden. Dies führt zu höheren und häufig unangemessenen Kosten.

Fazit


Bild

Es gibt viele verschiedene Möglichkeiten, eine REST-API in Node.js zu implementieren. Je nach Aufgabe sind die folgenden für Sie geeignet:

  • Wenn Sie maximale Leistung bei gleichzeitig minimalen Kosten benötigen, ist Express definitiv nicht das, was Sie brauchen. Schauen Sie sich Fastify an .
  • Wenn Sie eine kleine Bibliothek mit den minimal erforderlichen Funktionen benötigen, sollten Sie sich unbedingt restify , koa , polka oder restana ansehen

Source: https://habr.com/ru/post/de434962/


All Articles