Erstellen Sie API-gesteuerte moderne Anwendungen!
APIs sind den Benutzerschnittstellen ähnlich, mit dem einzigen Unterschied, dass der Benutzer eine Maschine oder Software ist.
Lassen Sie uns den API-first Design-Ansatz verstehen und warum es sinnvoll ist, ihm zu folgen. Wir werden auch JavaScript und seine Popularität beleuchten und schließlich die wichtigsten JavaScript-Frameworks für den Aufbau von APIs und Microservices diskutieren.
API-first-Ansatz
Wir alle haben schon einmal den Begriff "API first design" oder einfach APIs gehört. Der Begriff "API first design" wurde populär, als die Branche begann, den Begriff "Cloud-native Anwendung" zu verwenden. Im Laufe der Zeit begannen die Programmierer, die Entwicklung einer monolithischen Anwendung in Microservices aufzuteilen.

Alle Interaktionen mit diesen Mikrodiensten von Web-, Android- oder iOS-Geräten aus müssen über APIs erfolgen. Daher spielt das Design für diese APIs eine wichtige Rolle bei der Bereitstellung von Daten für diese Schnittstellen. Das bedeutet, dass Microservices nur ein einziges Medium zur Kommunikation haben, nämlich APIs.
Hier kommt also das API-First-Design-Prinzip ins Spiel. Wir müssen unsere API zuerst entwerfen, bevor wir die Implementierung für unsere Microservices/Backend-Services schreiben.
Denken Sie daran: APIs sind geschäftsfördernd, also entwickeln Sie sie zu Beginn der Entwicklung eines Systems.
Beim API-First-Design-Ansatz wird eine API als Bürger erster Klasse betrachtet. Fasst man die obigen Aussagen zusammen, erhält man die folgenden drei Kernpunkte, die als Grundsatz des API-First-Ansatzes gelten können.
- Die API ist die erste Benutzerschnittstelle unserer Anwendung.
- Zuerst kommt die API und dann die Anwendung.
- API ist beschrieben (und vielleicht sogar selbsterklärend)
Es gibt eine Vielzahl von Unternehmen, die API First-Ansätze verwenden, wie z. B. Twillio, NETFLIX, Stripe, Algolia, SendGrid, Etsy, Adobe, Amazonund viele mehr.
Amazon war eines der ersten Unternehmen, das seine Mitarbeiter zu diesem Ansatz anleitete. Die Bedeutung dieses Ansatzes lässt sich anhand eines Vorfalls nachvollziehen, bei dem Jeff Bezos(CEO von Amazon) erteilte ein Mandat mit der Bezeichnung Bezos-Mandat(irgendwann im Jahr 2002), mit einer Warnung Jeder, der sich nicht an dieses Verfahren hält, wird entlassen.
Vorteile des API-first-Ansatzes
Eine ganze Menge!
Im Folgenden sind einige davon aufgeführt.
- Wiederverwendbares/kompatibles Unternehmen
- Ermöglicht parallele Entwicklung
- Reduziert die Gesamtkosten über die gesamte Lebensdauer des Projekts.
- Reduziert das Risiko von Ausfällen
- Schnelleres Wachstum
- Freiheit von Sachzwängen
Lassen Sie uns nun eine der mächtigen Sprachen des Webs erforschen, die uns hilft, den oben beschriebenen Ansatz umzusetzen.
JavaScript: Eine Sprache für das Web

JavaScript ist eine der wichtigsten Sprachen von heute und morgen.
JavaScript ist eine interpretierte High-Level-Skriptsprache auf der Client-Seite. Sie wird verwendet, um Webseiten interaktiver zu gestalten. Mit ihr lassen sich komplexe und schöne Designs umsetzen. JavaScript ist eine objektbasierte Skriptsprache, die Kapselung, Polymorphismus und bis zu einem gewissen Grad auch Vererbung unterstützt.
Außerdem muss es im Gegensatz zu C, C++ und Java nicht kompiliert werden.
JavaScript kann im Browser und auf dem Server sowie auf jedem Gerät mit einer JavaScript-Engine ausgeführt werden.
Es ist gut zu erwähnen, dass JavaScript nichts mit Java zu tun hat. Dann stellt sich die Frage, warum es JavaScript genannt wird? Als JavaScript ursprünglich veröffentlicht wurde, hieß es Mokka; es wurde später umbenannt in Live-Drehbuch und dann an JavaScript als Netscape und SUN eine Lizenzvereinbarung trafen.
JavaScript wird bei der Entwicklung fast aller Arten von Webprodukten und -anwendungen eingesetzt, z. B. bei Smartwatches, Spielen, Websites, Mobil- und Webanwendungen. Einige der beliebtesten Websites wie Google, Facebook, Netflix und Amazon nutzen JavaScript für die Entwicklung ihrer Produkte.
Ist sie auf die Client-Seite beschränkt?
JavaScript wurde ursprünglich als clientseitige Programmiersprache für die Ausführung in einem Browser entwickelt. Inzwischen hat es sich jedoch stark weiterentwickelt und ist mehr als das, was es einmal war. Außerdem ist JavaScript nicht nur eine Client-seitige Sprache, sondern auch JavaScript-basierte Rahmenwerke werden auch für die serverseitige Programmierung verwendet.
Ein Beispiel für einen solchen Rahmen ist NodeJs.

Dies ist nicht das Ende der Möglichkeiten von JavaScript. Es kann nicht nur auf der Client- und Serverseite verwendet werden, sondern auch zur Entwicklung einer Anwendung mit einer einzigen Codebasis, die auf einem Mobiltelefon (Android, iOS) und im Web ausgeführt werden kann.
Ein Beispiel für einen solchen Rahmen ist ReactJs.
Beliebtheit von JavaScript
JavaScript ist heute wohl eine der wichtigsten Sprachen.
Der Aufstieg des Internets hat JavaScript an Orte gebracht, an die es nie gedacht war. Derzeit gibt es mehr als 100 Programmiersprachen, und jedes Jahr werden neue Sprachen eingeführt. Unter diesen Sprachen gibt es einige wenige, die schnelle Veränderungen auf dem Markt bewirken, und JavaScript ist definitiv eine davon.
Sie stand schon immer auf der Liste der beliebtesten Programmiersprachen. Laut StackOverflowist JavaScript die beliebteste und am häufigsten verwendete Programmiersprache.

Kennen Sie das?
Fast 70% der professionellen Entwickler, die an der Stack Overflow-Umfrage 2020 teilnahmen, programmierten in JavaScript.
Schauen wir uns nun einige der beliebtesten JavaScript-Frameworks zur Erstellung von API und Microservices an.
Hapi

Hapi ist ein einfaches, sicheres und Open-Source-Javascript-Framework. Es wird verwendet, um leistungsstarke, skalierbare Anwendungen mit minimalem Overhead zu erstellen. Ursprünglich wurde es entwickelt, um Walmarts Black Friday zu bewältigen, aber jetzt ist Hapi weiterhin die bewährte Wahl für Backend-Anforderungen der Enterprise-Klasse.
Unternehmen wie Beats Music, Vrbo, Conde Nast, AuthO, Brave, und viele mehr nutzen Hapi und sind damit zufrieden.
Kostenloser Support ist immer verfügbar auf der GitHub. Für eine schnellere Reaktion sollten Sie sich jedoch dem Slack-Kanal - Hier treffen sich viele Mitglieder der Gemeinschaft und helfen sich gegenseitig.
Restify

Restify ist optimiert für den Bau semantisch korrekt RESTful-Webdienste, die für den Produktionseinsatz in großem Umfang bereit sind. Wenn es heißt, semantisch korrekt, bedeutet das die Einhaltung der Spezifikationen, was eines der vorrangigen Ziele des Restify-Projektteams war.
Es ist für Introspektion und Leistung optimiert und wird in den meisten der größten Node.js-Implementierungen verwendet. Eine der coolsten Funktionen von Restify ist, dass es automatisch DTrace-Probes für Sie erstellt, wenn Sie eine neue Route/einen neuen Handler hinzufügen. Restify wird mit drei separaten Clients ausgeliefert:
- JsonClient: sendet und erwartet application/json
- StringClient: sendet die URL-verschlüsselte Anfrage und erwartet text/plain
- HttpClient: dünner Wrapper über die HTTP/HTTPS-Bibliotheken von Node
Der ausführliche Entwicklungsleitfaden ist zu finden unter hier.
Restify wird von einigen der angesehensten Unternehmen der Branche wie Netflix, Joyent und Pinterest eingesetzt, um einige der größten Implementierungen durchzuführen.
ExpressJS
ExpressJs ist ein Projekt des OpenJS-Stiftung.
Aufgrund seiner Robustheit haben viele beliebte Frameworks (wie Feathers, Kraken, Sails, Kites, NestJs, etc.) basieren auf Express. Es ist ein minimales und flexibles node.js-basiertes Webanwendungs-Framework, das eine Reihe robuster Funktionen für Web- und mobile Anwendungen bietet.
Da es sich um eine Schicht über der node.jskönnen wir effizient auf die JavaScript-Funktionen. Es eignet sich zum Schreiben von Anwendungen mit Server-Rendering, da es viele Template-Engines (wie pug und handlebars) unterstützt. Für die API-Entwicklung enthält es Zwischenhandler und viele HTTP-Service-/Dienstleistungsmethoden.
SailsJS

SailsJS ist ein MVC-Framework, das von der Firma Sails mit Sitz in Austin, TX, entwickelt wurde. Es wurde entwickelt von Mike McNeil um sein Team bei der Entwicklung skalierbarer Node.js-Projekte für Startup- und Unternehmenskunden zu unterstützen. Seit seiner Veröffentlichung im Jahr 2012 hat sich Sails zu einem der weltweit am häufigsten verwendeten Webanwendungs-Frameworks entwickelt.
Es ist ein Leichtgewicht, das auf Express aufsetzt. Es ist mit jedem Frontend kompatibel: Angular, React, iOS, Android. Sails behauptet, mit jeder Datenbank durch seine leistungsstarke ORM namens Waterline integriert zu werden. Es verwendet Express für die Verarbeitung von HTTP-Anfragen und wickelt socket.io für die Verwaltung von WebSockets.
Action-Held

Actionhero ist ein Multi-Transport-API-Server mit integrierten Cluster-Fähigkeiten und verzögerten Aufgaben. Das Ziel von Actionhero ist es, ein einfach zu bedienendes Toolkit zu erstellen, um wiederverwendbar & skalierbar APIs für HTTP, WebSockets und mehr. Es wurde von Grund auf so entwickelt, dass es alle Funktionen enthält, die wir von einem modernen API-Framework erwarten.
Actionhero eignet sich hervorragend für die Erstellung und Nutzung von APIs, das Speichern und Abrufen von Daten aus Datenbanken, die Änderung von Dateien und ähnliche Aufgaben.
Actionhero hat 5 Schlüsselkonzepte, aus denen sich jede Anwendung zusammensetzt: Aktionen, Aufgaben, Initialisierungen, Chatund Server.

LoopBack

LoopBack ist ein hochgradig erweiterbares Open-Source-Framework für Node.js und TypeScript, das auf Express basiert. Es ermöglicht uns die schnelle Erstellung von APIs und Microservices, die aus Backend-Systemen wie Datenbanken und SOAP- oder REST-Diensten bestehen.
Es handelt sich um ein neues, verbessertes Programmiermodell mit Dependency Injection und neuen Konzepten wie Components, Mixins, Repositories, usw., die dieses am meisten erweiterbar machen. LoopBack ermöglicht es uns, eine GraphQL-Schnittstelle für jede REST-API mit OpenAPI-to-GraphQL zu erstellen.
Wir können im Handumdrehen mit Loopback beginnen, indem wir einfach die Schritte in Anleitung für den Einstieg. Ihre Dokumentation ist in vier Quadranten eingeteilt, und zwar in folgende,
- Lernorientiert: Tutorials bieten praktische Lektionen, in denen die Benutzer das Framework durch praktisches Tun erlernen können.
- Problemorientiert: Anleitungen bieten Rezepte zur Lösung spezifischer Probleme, auf die Sie bei der Erstellung eines LoopBack-Projekts stoßen können.
- Verstehensorientiert: Auf den Konzeptseiten werden Architekturkonzepte, eine breitere Sichtweise und tieferes Wissen über das Framework erläutert.
- Informationsorientiert: Referenzhandbücher enthalten eine technische Beschreibung der Maschinen und ihrer Verwendung.
Unternehmen wie GoDaddySymantec, Sapient, Fundrails, ShoppinPal und WhiteBoard nutzen LoopBack ausgiebig.
FedernJs

Federn ist eine Reihe von Tools und ein Architekturmuster, die die Erstellung skalierbarer REST-APIs und Echtzeitanwendungen erleichtern. Wir können Prototypen in Minuten und produktionsreife Anwendungen in Tagen erstellen. Feathers kann mit jeder Back-End-Technologie interagieren, unterstützt über ein Dutzend Datenbanken und arbeitet mit jeder Front-End-Technologie wie React, VueJS, Angular, React Native, Android oder iOS.
Um mit der ersten Feathers-Anwendung zu beginnen, folgen Sie der Schnellstartanleitung. Wenn Sie nicht weiterkommen oder eine Frage haben, können Sie auf den verschiedenen Kanälen Hilfe erhalten, darunter Slack, GitHub, StackOverflow, Telegram usw.
KoaJS
Das Team hinter Express entwickelt koa. Es zielt darauf ab, eine kleinere, ausdrucksstärkere und robuste Grundlage für Webanwendungen und APIs zu sein. Koa bündelt keine Middleware in seinem Kern und bietet eine elegante Reihe von Methoden, die das Schreiben von Servern schnell und angenehm machen.
Durch den Einsatz von asynchronen Funktionen ermöglicht Koa den Verzicht auf Rückrufe und eine deutlich verbesserte Fehlerbehandlung. Mit den folgenden drei Befehlen kann es losgehen.
$ <a href="https://geekflare.com/de/install-nvm-on-windows-macos/">nvm installieren</a> 7
$ npm i koa
$ node my-koa-app.js
AdonisJS

AdonisJs ist ein Node.js-MVC-Framework, das von einer Website gepflegt und unterstützt wird. pulsierende Gemeinschaft. Es bietet ein stabiles Ökosystem zum Schreiben von Server-Sid-Anwendungen, so dass Sie sich auf die geschäftlichen Anforderungen konzentrieren können, anstatt sich für ein Paket zu entscheiden. Es ist wie jedes andere npm-Modul mit etwas Code oben drauf, um reibungslos mit AdonisJs-Anwendungen zu arbeiten.
Es gibt keine festen Voraussetzungen für die Verwendung von AdonisJs, aber ein konventionelles Verständnis von JavaScript, Async-Programmierung und Node.js ist sehr hilfreich. Lesen Sie sich unbedingt die Installation Leitfaden.
Im Falle von Fragen oder Fehlern kann man mit dem AdonisJs-Team über die unten aufgeführten Kanäle kommunizieren.
- Github: Teilen Sie Fehler mit oder erstellen Sie Funktionsanfragen.
- Diskord: Treten Sie dem Discord-Server bei, um sofort mit anderen Mitgliedern der Community zu chatten.
- Twitter: Bleiben Sie auf dem Laufenden über die täglichen Fortschritte und informieren Sie sich über tolle Projekte der Gemeinschaft.
TotalJS

Total.js Plattform ist eine Sammlung von Bibliotheken, Paketen, UI-Komponenten, Praktiken und kompletten Produkten, die in JavaScript geschrieben sind. Die Grundlage der Plattform ist ein serverseitiges Framework namens Total.js framework und eine clientseitige Bibliothek namens jComponent.
Beide Teile wurden von Grund auf neu geschrieben.
In den meisten Fällen müssen wir keine Abhängigkeiten mit der Total.js-Plattform verwenden, da sie alles enthält, was wir für die Entwicklung benötigen.
Die gesamte Total.js-Plattform - Produkte, Bibliotheken, Module, Pakete und UI-Komponenten - sind Open-Source unter MIT-Lizenz.
Molekulare

Molekulare ist ein schnelles, modernes und leistungsstarkes Microservices-Framework für Node.js. Es bietet viele Funktionen für den Aufbau und die Verwaltung Ihrer Microservices, wie z. B.:
- Versprechungsbasierte Lösung (async/await-kompatibel)
- Anfrage-Antwort-Konzept
- Unterstützung der ereignisgesteuerten Architektur mit Ausgleich
- Integriertes Diensteregister und dynamische Dienstsuche
- Lastausgleich bei Anfragen und Ereignissen (Round-Robin, Zufall, CPU-Auslastung, Latenz, Sharding)
- Fehlertoleranzfunktionen (Circuit Breaker, Bulkhead, Retry, Timeout, Fallback)
- integrierte Caching-Lösung (Memory, MemoryLRU, Redis)
- einsteckbare Logger (Konsole, Datei, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
- Transporteure (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
- Serialisierer (JSON, Avro, MsgPack, Protokollpuffer, Thrift)
- Master-lose Architektur, alle Knoten sind gleich
- Integrierte Metrikfunktion mit Reportern (Konsole, CSV, Datadog, Event, Prometheus, StatsD)
- Verfolgungsfunktion mit Exporteuren (Console, Datadog, Event, Jaeger, Zipkin)
Fastify
Beginnen Sie Ihre Reise mit Fastify.
Fastify ist stark darauf ausgerichtet, die beste Entwicklererfahrung mit dem geringsten Overhead und einer leistungsstarken Plugin-Architektur zu bieten. Hapi und Express inspirieren es, und es ist eines der schnellsten Web-Frameworks der Branche.
Beginnen Sie Ihre Reise mit Fastify.
npm install fastify
Sie bietet eine hohe Leistung und kann je nach Komplexität des Codes bis zu 30 Tausend Anfragen pro Sekunde verarbeiten. Sie ist über ihre Hooks, Plugins und Dekorateure vollständig erweiterbar.
Auch wenn es nicht zwingend erforderlich ist, empfiehlt Fastify die Verwendung von JSON-Schema um Ihre Routen zu validieren und Ihre Ausgaben zu serialisieren, kompiliert Fastify intern das Schema in einer hochperformanten Funktion.
Schlussfolgerung
Die Erstellung einer API kann eine Herausforderung sein, aber mit dem richtigen Framework ist das Leben viel einfacher. Erkunden Sie die oben aufgeführten Frameworks für Ihre nächste API und Microservices und wählen Sie die am besten geeignete aus. Sobald Ihre API fertig ist, vergessen Sie nicht überwachen sie.