Включить сжатие ответов API (gzip) в ServiceStack 5.8.1 - PullRequest
1 голос
/ 27 февраля 2020

У нас есть API-интерфейс ServiceStack 5.8.1, работающий в Azure, который использует EF Core для выполнения запросов к базе данных Azure SQL, которая возвращает более 500 000 записей. Вызов методов API возвращает JSON представление данных клиенту.

Внешний клиент, также работающий в Azure, - это Angular 7.x SPA, который выполняет HTTP-вызовы клиента в API и использования возвращенного ответа JSON.

Есть ли способ в ServiceStack включить сжатие ответа примерно как GZIP ( не кеширование - так как нам нужны самые последние данные для каждого запрос), который бы отправил ответ JSON обратно клиенту Angular в сжатом формате?

Если это возможно, то мы могли бы затем рассмотреть возможность распаковки результата в клиенте Angular ( если это возможно), чтобы уменьшить объем данных, передаваемых по сети.

1 Ответ

1 голос
/ 28 февраля 2020

Посмотрите на метод ToOptimizedResultAsyn c.
Существует также ToOptimizedResultUsingCache, если вы хотите, чтобы ответы были кэшированы.

Также упоминается здесь Включить сжатие gzip / deflate

Пример:

var response = new SomeViewModel
{
  Results = ....
}

return base.Request.ToOptimizedResultAsync(response);
...