Não, você não precisa do Express na sua API REST no Node.js

imagem

Sobre alternativas ao Express, onde e por que vale a pena abandonar o Express'a e pequenas medidas na tradução sob o corte


Express


O Express é uma estrutura Node.js. simples, bem documentada, altamente suportada e mais baixada.
Se você tentar pesquisar no Google como criar um servidor HTTP simples, provavelmente a primeira solicitação fornecerá algo como isto:

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

APIs REST


Na arquitetura de aplicativos desenvolvidos pelas empresas, os serviços REST API e REST continuam a desempenhar um papel fundamental, pois o HTTP ainda é usado como o principal protocolo de comunicação. Isso significa que um programador que fará um novo aplicativo ou microsserviço usará a API REST em vez de, por exemplo, uma "fila de eventos".

Com o início da popularidade do uso de microsserviços, a API REST se esforça para ser o menor possível e executar um número mínimo de operações. Isso implica que o número de terminais na API desenvolvida aumentará em proporção direta ao número de microsserviços e para cada ação simples, haverá seu próprio terminal. Por exemplo, para alterar os dados do usuário no banco de dados, o método / user / search será chamado primeiro para encontrar o ID do usuário de que precisamos e somente então o método / user / update será chamado com o parâmetro retornado para nós antes desse ID. para executar esta operação (Nota Ed.).
Sim, as APIs REST devem ser rápidas, devem ser rápidas!
Além disso, ao criar um aplicativo altamente carregado usando a API REST, eles usam cada vez mais o padrão de microsserviços. Esses aplicativos são criados nos gateways de API. A API do Gateway é, de fato, um servidor proxy que o usuário acessa e esse servidor proxy já acessa o microsserviço menos carregado. Normalmente, a API do Gateway também resolve pequenas tarefas, como:

  • Processamento de certificado SSL
  • Compartilhamento de carga
  • Autorização e autenticação
  • Armazenamento em cache
  • Solicitar compactação de conteúdo
  • ...

No entanto, o Express é muito pesado e lento.


O Express é ótimo, cheio de recursos ... mas também é pesado e lento de usar para pequenos propósitos, como a API REST em micro serviços


A versão mais recente da biblioteca (4.16.4) depende de 30 módulos embutidos e, no processo de desenvolvimento, outros 20 são adicionados a este módulo, o que acaba tornando o aplicativo muito pesado para ser usado como um microsserviço.

imagem

Comparado a outras bibliotecas, o Express é muito lento para usar com propósitos mínimos quando você não precisa executar consultas complexas. O gráfico abaixo mostra uma comparação da execução de uma solicitação simples para um documento JSON.

imagem

imagem

As medidas mostradas na última foto não mostram que o Express é lento em geral, elas mostram que você precisa dobrar o desempenho do seu processador para executar operações simples ... Como resultado, o pagamento mensal pelo uso da AWS, Google Cloud, MS aumentará Azure ou outro serviço de nuvem que você usa, e isso se traduzirá em uma despesa maior e muitas vezes irracional.

Conclusão


imagem

Existem muitas maneiras diferentes de implementar uma API REST no Node.js, a seguir, as adequadas para você, dependendo da tarefa:

  • Se você precisa de desempenho máximo, mas ao mesmo tempo custos mínimos, o Express definitivamente não é o que você precisa. Dê uma olhada no Fastify .
  • Se você precisar de uma pequena biblioteca com o conjunto mínimo necessário de funções, deve definitivamente dar uma olhada em restify , koa , polka ou restana

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


All Articles