Non, vous n'avez pas besoin d'Express dans votre API REST sur Node.js

image

A propos des alternatives à Express, où et pourquoi il vaut la peine d'abandonner Express'a et les petites mesures en traduction sous la coupe


Express


Express est un framework Node.js simple, bien documenté, hautement pris en charge et le plus téléchargé.
Si vous essayez de google comment créer un serveur HTTP simple, la première demande vous donnera probablement quelque chose comme ceci:

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

API REST


Dans l'architecture des applications développées par les entreprises, l'API REST et les services REST continuent de jouer un rôle fondamental, car HTTP est toujours utilisé comme protocole principal de communication. Cela signifie qu'un programmeur qui va créer une nouvelle application ou un micro-service utilisera l'API REST au lieu, par exemple, d'une «file d'attente d'événements».

Avec l'apparition de la popularité de l'utilisation des micro-services, l'API REST s'efforce d'être aussi petite que possible et d'effectuer un nombre minimum d'opérations. Cela implique que le nombre de points de terminaison dans l'API développée augmentera en proportion directe avec le nombre de micro-services et pour chaque action simple, il y aura son propre point de terminaison. Par exemple, afin de modifier les données utilisateur dans la base de données, la méthode / user / search sera appelée en premier pour trouver l'ID de l'utilisateur dont nous avons besoin, et alors seulement la méthode / user / update sera appelée avec le paramètre renvoyé avant cet ID, à la place pour effectuer cette opération (Note Ed.).
Oui, les API REST doivent être rapides, elles doivent être rapides!
De plus, lors de la création d'une application très chargée à l'aide de l'API REST, ils utilisent de plus en plus le modèle de micro-services. Ces applications sont basées sur des passerelles API. L'API Gateway est, en fait, un serveur proxy auquel l'utilisateur accède, et ce serveur proxy accède déjà au micro-service le moins chargé. En règle générale, l'API de passerelle résout également les petites tâches, telles que:

  • Traitement des certificats SSL
  • Partage de charge
  • Autorisation et authentification
  • Mise en cache
  • Demander la compression de contenu
  • ...

Cependant, Express est trop lourd et lent.


Express est génial, plein de fonctionnalités ... mais il est également lourd et lent à utiliser à de petites fins, comme l'API REST dans les micro services


La dernière version de la bibliothèque (4.16.4) dépend de 30 modules qui y sont intégrés, et en cours de développement, environ 20 autres sont ajoutés à ce module, ce qui rend finalement l'application trop lourde pour être utilisée comme micro-service.

image

Par rapport à d'autres bibliothèques, Express est trop lent à utiliser à des fins minimales lorsque vous n'avez pas à effectuer de requêtes complexes. Le graphique ci-dessous présente une comparaison de l'exécution d'une simple demande de document JSON.

image

image

Les mesures montrées dans la dernière image ne montrent pas qu'Express est lent en général, elles montrent que vous devez doubler les performances de votre processeur pour effectuer des opérations simples ... En conséquence, le paiement mensuel pour l'utilisation d'AWS, Google Cloud, MS augmentera Azure ou un autre service cloud que vous utilisez, ce qui se traduira par des dépenses plus importantes et souvent déraisonnables.

Conclusion


image

Il existe de nombreuses façons d'implémenter une API REST dans Node.js, les suivantes sont celles qui vous conviennent, selon la tâche:

  • Si vous avez besoin de performances maximales, mais en même temps de coûts minimaux, Express n'est certainement pas ce dont vous avez besoin. Jetez un oeil à Fastify .
  • Si vous avez besoin d'une petite bibliothèque avec le minimum requis de fonctions, alors vous devriez certainement jeter un œil à restify , koa , polka ou restana

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


All Articles