我们有一个在Azure中运行的ServiceStack 5.8.1 API,该API使用EF Core对返回500,000条以上记录的Azure SQL数据库运行查询。调用API方法会将数据的JSON表示形式返回给客户端。
也在Azure中运行的前端客户端是Angular 7.x SPA,它正在对API进行HTTP客户端调用并使用返回的JSON响应。
ServiceStack中是否有一种方法可以启用响应压缩,例如GZIP(非缓存-因为我们需要每个请求的最新数据),它将以压缩格式将JSON响应发送回Angular客户端?
如果可能的话,那么我们可以考虑在Angular客户端中解压缩结果(如果可能的话,以减少通过网络传输的数据量。
查看方法ToOptimizedResultAsync。如果您想要缓存的响应,则还有ToOptimizedResultUsingCache。
也在这里提到Enable gzip/deflate compression
示例:
var response = new SomeViewModel
{
Results = ....
}
return base.Request.ToOptimizedResultAsync(response);