/ #aspnetcore #compression 

Compressão de Respostas em APIs ASP.Net Core

Quando estamos desenvolvendo nossas APIs é muito importante nos preocuparmos com o tráfego de mensagens que ela irá gerar, pois largura de banda é um recurso limitado e não podemos esperar que nossos clientes irão poder contar com conexões de banda larga via fibra ótica à todo momento, ou ainda, conexões 4G ultra velozes sem limites de dados. Infelizmente essa não é a nossa realidade ainda… =/

O que podemos fazer é reduzir o tamanho das respostas em nossas APIs, e isso tem um impacto muito grande tanto financeiro, quanto de performance. Lembre-se que a grande maioria dos players de nuvem, ou todos eles, cobram por tráfego de dados, e além de tentar reduzir o custo devemos concordar que quanto menor for o tamanho dos dados, mais rápida será a resposta para quem estiver consumindo nossas APIs e assim melhorando a performance de nosso sistema de uma forma geral.

Uma maneira de diminuir o tamanho das mensagens trafegadas é implementando um mecanismo de compressão de respostas.

A compressão de respostas pode ser feita diretamente nos servidores web como o IIS e Nginx, só para citar alguns. Já o Kestrel e HTTP.sys não possuem esse recurso nativamente até o momento em que escrevo esse artigo.

Middleware de Compressão de Respostas do ASP.Net Core

O ASP.Net Core conta com alguns middlewares muito úteis, e um deles serve justamente para comprimir as respostas de nossas APIs.

Para isso basta adicionarmos uma referência ao pacote nuget Microsoft.AspNetCore.ResponseCompression e seguir os trechos de código abaixo: