Créez des applications modernes pilotées par API!

Les API sont similaires aux interfaces utilisateur, à la seule différence qu'un utilisateur est une machine ou un logiciel.

Comprenons l'approche de conception API-first et pourquoi il est logique de la suivre. Nous nous concentrerons également sur JavaScript et sa popularité, puis nous discuterons des principaux frameworks JavaScript pour créer des API et des microservices.

Approche API-first

Nous avons tous entendu le terme appelé première conception d'API ou simplement API. En fait, le terme `` première conception d'API '' est devenu populaire après que l'industrie a commencé à mentionner le terme d'application native cloud. Sur une période de temps à partir du développement d'une application monolithique, les programmeurs ont commencé à décomposer ces applications en microservices.

Toutes les interactions avec ces microservices à partir d'appareils Web, Android ou iOS doivent se faire via des API. Par conséquent, la conception de ces API joue un rôle majeur dans la fourniture de données à ces interfaces. Cela signifie que les microservices n'ont qu'un seul moyen de communication qui n'est rien d'autre que des API.

Ainsi, le premier principe de conception de l'API entre ici dans l'image. Nous devons envisager la conception de notre API avant même d'écrire l'implémentation de nos microservices / services backend.

N'oubliez pas: les API sont des moteurs commerciaux, alors développez-les au début du développement d'un système.

Dans l'approche de conception API d'abord, une API est considérée comme un citoyen de première classe. Résumer les déclarations ci-dessus nous donnera les trois points clés ci-dessous, qui peuvent être considérés comme un principe de la première approche API.

  • L'API est la première interface utilisateur de notre application.
  • L'API vient en premier, puis l'application.
  • L'API est décrite (et peut-être même auto-descriptive)

De nombreuses entreprises utilisent des approches API first, telles que Twillio, NETFLIX, Bande, Algolia, SendGrid, Etsy, Adobe, Amazon, Et beaucoup plus.

Amazon a été l'une des premières entreprises à avoir demandé à ses employés d'utiliser cette approche. L'importance de cette approche pourrait être comprise avec une incidence lorsque Jeff Bezos(PDG d'Amazon) a émis un mandat appelé Mandat Bezos(vers 2002), avec un avertissement quiconque ne suit pas ce processus sera licencié.

Avantages de l'approche API-first

Beaucoup!

Voici quelques-uns d'entre eux.

  • Entreprise réutilisable / composable
  • Permet le développement parallèle
  • Réduit le coût global sur la durée de vie du projet.
  • Réduit les risques de pannes
  • Une croissance plus rapide
  • Liberté de contraintes

Explorons maintenant l'un des langages puissants du Web, qui nous aide à mettre en œuvre l'approche décrite ci-dessus.

JavaScript: un langage du Web

JavaScript est l'un des langages les plus importants d'aujourd'hui et de demain.

JavaScript est un langage de script de haut niveau, interprété côté client. Il est utilisé pour rendre les pages Web plus interactives. Cela nous permet de mettre en œuvre des conceptions complexes et belles. JavaScript est un langage de script basé sur des objets qui prend en charge l'encapsulation, le polymorphisme et, dans une certaine mesure, l'héritage.

En outre, il ne nécessite pas d'être compilé, contrairement à C, C ++ et Java.

JavaScript peut s'exécuter dans le navigateur et sur le serveur et tout appareil doté d'un moteur javascript.

Il est bon de mentionner que JavaScript n'a rien à voir avec Java. Ensuite, la question est: pourquoi s'appelle-t-il JavaScript? En fait, lorsque JavaScript a été initialement publié, il s'appelait Moka; il a ensuite été renommé script en direct et ensuite JavaScript lorsque Netscape et SUN ont conclu un accord de licence.

JavaScript est utilisé pour développer presque tous les types de produits et d'applications Web, tels que les smartwatches, les jeux, les sites Web, les applications mobiles et Web. Certains des sites Web les plus populaires comme Google, Facebook, Netflix, Amazon utilisent JavaScript pour créer leurs produits.

Est-ce limité au côté client?

JavaScript a été initialement conçu pour s'exécuter dans un navigateur en tant que langage de programmation côté client. Mais maintenant, il a beaucoup évolué, et c'est plus que ce qu'il était auparavant. De plus, JavaScript n'est pas seulement le langage côté client mais aussi Framework basés sur JavaScript sont également utilisés pour effectuer la programmation côté serveur.

Un exemple d'un tel cadre est NodeJs.

Ce n'est pas la fin des capacités de JavaScript. En plus d'être utilisé comme côté client et côté serveur, il peut également être utilisé pour concevoir une application avec une base de code unique et s'exécuter sur un mobile (Android, iOS) et sur le Web.

Un exemple d'un tel cadre est ReactJs.

Popularité de JavaScript

JavaScript est sans doute l'un des langages les plus importants aujourd'hui.

La montée en puissance du Web a pris des endroits JavaScript pour lesquels il n'a jamais été conçu. Actuellement, nous avons plus de 100 langages de programmation et chaque année de nouveaux langages sont introduits. Parmi ceux-ci, quelques langages puissants apportent des changements rapides sur le marché, et JavaScript en est définitivement un.

Il a toujours été dans la liste des langages de programmation populaires. Selon StackOverflow, JavaScript est le langage de programmation le plus populaire et le plus couramment utilisé.

Savez-vous?

Près de 70% des développeurs professionnels qui ont répondu à l'enquête 2020 Stack Overflow codée en JavaScript.

Examinons maintenant certains des frameworks JavaScript les plus populaires pour créer des API et des microservices.

Hapi

Hapi est un framework javascript simple, sécurisé et open source. Il est utilisé pour créer des applications puissantes et évolutives avec une surcharge minimale. Il a été initialement développé pour gérer l'échelle Black Friday de Walmart, mais Hapi continue d'être le choix éprouvé pour les besoins de backend de niveau entreprise.

Des entreprises comme Beats Music, Vrbo, Condé Nast, AuthO, Brave, et beaucoup d'autres utilisent et sont satisfaits de Hapi.

Une assistance gratuite est toujours disponible sur le GitHub. Cependant, pour une réponse plus rapide, rejoignez le Slack channel - c'est là que de nombreux membres de la communauté se retrouvent et s'entraident.

Restify

Restifier est optimisé pour la construction sémantiquement correct Services Web RESTful prêts pour une utilisation en production à grande échelle. Quand il dit sémantiquement correct, cela signifie rester fidèle aux spécifications, qui était l'un des principaux objectifs de l'équipe du projet Restify.

Il optimise l'introspection et les performances et est utilisé dans la plupart des plus grands déploiements Node.js. L'une des fonctionnalités les plus intéressantes de Restify est qu'il crée automatiquement des sondes DTrace pour vous chaque fois que vous ajoutez une nouvelle route / gestionnaire. Il existe en fait trois clients distincts livrés dans Restify:

  • JsonClient : envoie et attend l'application / json
  • Client de chaîne : envoie la requête encodée en URL et attend du texte / brut
  • Client HTTP : wrapper léger sur les bibliothèques HTTP / HTTPS du nœud

Le guide de développement détaillé peut être trouvé ici.

Restify est utilisé par certaines des entreprises les plus respectées de l'industrie comme Netflix, Joyent et Pinterest pour alimenter certains des plus grands déploiements.

ExpressJS

ExpressJs est un projet de l' Fondation OpenJS.

En raison de sa robustesse, de nombreux frameworks populaires (tels que Feathers, Kraken, Sails, Kites, NestJs, etc.) sont basés sur Express. Il s'agit d'un cadre d'application Web minimal et flexible basé sur node.js qui fournit un ensemble robuste de fonctionnalités pour les applications Web et mobiles.

Puisqu'il fournit une couche au-dessus de node.js, nous pouvons accéder efficacement au Fonctions JavaScript. Il convient à l'écriture d'applications avec un rendu serveur car il prend en charge de nombreux moteurs de modèles (tels que pug et guidons). Pour le développement d'API, il contient des gestionnaires intermédiaires et de nombreuses méthodes de service / utilitaire HTTP.

SailsJS

VoilesJS est un framework MVC construit sous la société Sails dont le siège est à Austin, TX. Il a été développé par Mike Mc Neil pour assister son équipe dans la construction de projets évolutifs Node.js pour les startups et les entreprises. Depuis sa sortie en 2012, Sails est devenu l'un des frameworks d'application Web les plus utilisés dans le monde.

C'est un poids léger qui se trouve au-dessus d'Express. Il est compatible avec n'importe quel frontal: Angular, React, iOS, Android. Sails prétend être intégré à n'importe quelle base de données grâce à son puissant ORM appelé Waterline. Il utilise Express pour gérer les requêtes HTTP et encapsule socket.io pour gérer les WebSockets.

Action Hero

Héros d'action est un serveur d'API multi-transport avec des capacités de cluster intégrées et des tâches différées. Le but d'Actionhero est de créer une boîte à outils facile à utiliser pour créer réutilisable & évolutive API pour HTTP, WebSockets, etc. Il a été conçu à partir de zéro pour inclure toutes les fonctionnalités que nous attendons d'un framework d'API moderne.

Le type de charge de travail dans lequel Actionhero excelle implique la production et la consommation d'API, le stockage et la récupération de données à partir de bases de données, la modification de fichiers et des tâches similaires.

Actionhero a 5 concepts clés qui composent chaque application: ActionsTâchesInitialiseursChat et Serveurs.

LoopBack

Bouclage est un framework Node.js et TypeScript hautement extensible et open-source basé sur Express. Il nous permet de créer rapidement des API et des microservices composés de systèmes backend tels que des bases de données et des services SOAP ou REST.

Il s'agit d'un nouveau modèle de programmation amélioré avec injection de dépendances et de nouveaux concepts tels que les composants, les mixins, les référentiels, etc., qui en font le plus extensible. LoopBack nous permet de créer une interface GraphQL pour n'importe quelle API REST en utilisant OpenAPI-to-GraphQL.

Nous pouvons commencer avec Loopback en un rien de temps en suivant simplement ses étapes Guide de Démarrage. Leur documentation est catégorisée en fonction de quatre quadrants, et ceux-ci sont,

  • Orienté vers l'apprentissage: Les didacticiels fournissent des leçons pratiques où les utilisateurs peuvent apprendre le cadre en faisant.
  • Axé sur les problèmes: Les guides pratiques fournissent des recettes pour résoudre des objectifs spécifiques que vous pouvez rencontrer lors de la création d'un projet LoopBack.
  • Axé sur la compréhension: Les pages Concepts expliquent les concepts d'architecture, une vue plus large et une connaissance plus approfondie du cadre.
  • Orienté information: Les guides de référence fournissent une description technique de la machine et comment l'utiliser.

Des entreprises comme GoDaddy, Symantec, Sapient, Fundrails, ShoppinPal et WhiteBoard utilisent largement LoopBack.

FeathersJs

Plumes est un ensemble d'outils et un modèle d'architecture qui facilitent la création d'API REST évolutives et d'applications en temps réel. Nous pouvons créer des prototypes en quelques minutes et des applications prêtes pour la production en quelques jours. Feathers peut interagir avec n'importe quelle technologie back-end, prendre en charge plus d'une douzaine de bases de données et fonctionner avec n'importe quelle technologie frontale telle que React, VueJS, Angular, React Native, Android ou iOS.

Pour démarrer avec la première application Feathers, suivez le guide de démarrage rapide. Si vous êtes bloqué ou avez une question, vous pouvez obtenir de l'aide sur leurs différents canaux, notamment Slack, GitHub, StackOverflow, Telegram, etc.

KoaJS

L'équipe derrière Express conçoit koa. Il vise à être une base plus petite, plus expressive et plus robuste pour les applications Web et les API. Koa n'intègre aucun middleware dans son noyau, et il fournit une suite élégante de méthodes qui rendent les serveurs d'écriture rapides et agréables.

En exploitant les fonctions asynchrones, Koa nous permet d'abandonner les rappels et d'augmenter considérablement la gestion des erreurs. Démarrez-le en trois commandes comme ci-dessous.

$ nvm install 7
$ npm i koa
$ node my-koa-app.js

AdonisJS

AdonisJs est un framework MVC Node.js qui est maintenu et soutenu par un communauté dynamique. Il offre un écosystème stable pour écrire des applications côté serveur afin que vous puissiez vous concentrer sur les besoins de l'entreprise plutôt que sur la finalisation du package à choisir ou non. C'est comme n'importe quel autre module npm avec du code en plus pour fonctionner correctement avec les applications AdonisJs.

Il n'y a pas de conditions préalables strictes pour utiliser AdonisJs, mais avoir une compréhension conventionnelle de JavaScript, de la programmation Async et de Node.js est très utile. Assurez-vous de lire le installation guider.

En cas de questions ou de bugs, on peut communiquer avec l'équipe AdonisJs via les canaux ci-dessous.

  • Github: Partagez des bogues ou créez des demandes de fonctionnalités
  • Forum: Posez des questions, présentez votre projet et participez à la vie du Framework AdonisJs.
  • Discorde: Rejoignez le serveur Discord pour discuter instantanément avec d'autres membres de la communauté.
  • Twitter: Restez en contact avec les progrès réalisés chaque jour et soyez informé des projets impressionnants fournis par la communauté.

TotalJS

Total.js platform est une collection de bibliothèques, de packages, de composants d'interface utilisateur, de pratiques et de produits complets écrits en JavaScript. La base de la plate-forme est un framework côté serveur appelé framework Total.js et une bibliothèque côté client appelée jComponent.

Les deux parties ont été écrites à partir de zéro.

Dans la plupart des cas, nous n'avons pas besoin d'utiliser de dépendances avec la plateforme Total.js, car elle contient tout ce dont nous avons besoin pour le développement.

L'ensemble de la plate-forme Total.js - produits, bibliothèques, modules, packages et composants d'interface utilisateur est open-source sous licence MIT.

Moleculer

Moléculer est un framework de microservices rapide, moderne et puissant pour Node.js. Il fournit de nombreuses fonctionnalités pour créer et gérer vos microservices, telles que:

  • Solution basée sur les promesses (compatible async / await)
  • concept de demande-réponse
  • prendre en charge l'architecture événementielle avec équilibrage
  • registre de services intégré et découverte de services dynamiques
  • demandes et événements à charge équilibrée (tourniquet, aléatoire, utilisation du processeur, latence, partitionnement)
  • fonctions de tolérance aux pannes (disjoncteur, cloison, nouvelle tentative, délai d'expiration, repli)
  • solution de mise en cache intégrée (Memory, MemoryLRU, Redis)
  • enregistreurs enfichables (Console, File, Pino, Bunyan, Winston, Debug, Datadog, Log4js)
  • transporteurs (TCP, NATS, MQTT, Redis, NATS Streaming, Kafka, AMQP 0.9, AMQP 1.0)
  • sérialiseurs (JSON, Avro, MsgPack, Protocol Buffer, Thrift)
  • architecture sans maître, tous les nœuds sont égaux
  • fonction de métrique intégrée avec les journalistes (Console, CSV, Datadog, Event, Prometheus, StatsD)
  • fonction de traçage avec les exportateurs (Console, Datadog, Event, Jaeger, Zipkin)

Fastify

Commencez votre voyage avec Fastify.

Fastifier est fortement axé sur la fourniture de la meilleure expérience de développeur avec le moins de frais généraux et une architecture de plug-in puissante. Hapi et Express l'inspirent, et c'est l'un des frameworks Web les plus rapides du secteur.

Commencez votre voyage avec Fastify.

npm install fastify

Il offre des performances élevées, et en fonction de la complexité du code; il peut servir jusqu'à 30 XNUMX requêtes par seconde. Il est entièrement extensible via ses hooks, plugins et décorateurs.

Même si ce n'est pas obligatoire, Fastify recommande d'utiliser Schéma JSON pour valider vos routes et sérialiser vos sorties, Fastify compile en interne le schéma dans une fonction hautement performante.

Conclusion

Construire une API peut être difficile, mais avec le bon cadre, la vie est beaucoup plus facile. Explorez le cadre ci-dessus pour votre prochaine API et Microservices et choisissez celui qui vous convient le mieux. Une fois que votre API est prête, n'oubliez pas de moniteur Eux.