/
aprogrammer
/
reverse-proxy-ms-yarp
Обзор
Документация
Войти
/
aprogrammer
/
reverse-proxy-ms-yarp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/ReverseProxy/Configuration/RouteValidators/OutputCachePolicyValidator.cs
45 строк
1 KB
witskeeper
Add OutputCachePolicy support (#2328)
28 ноя 2023, 19:09
Не верифицирован
28 ноя 2023, 19:09
3853af1
Код
Авторство
О чём код?
using System; using System.Collections.Generic; using System.Threading.Tasks; namespace Yarp.ReverseProxy.Configuration.RouteValidators; internal sealed class OutputCachePolicyValidator : IRouteValidator { #if NET7_0_OR_GREATER private readonly IYarpOutputCachePolicyProvider _outputCachePolicyProvider; public OutputCachePolicyValidator(IYarpOutputCachePolicyProvider outputCachePolicyProvider) { _outputCachePolicyProvider = outputCachePolicyProvider; } public async ValueTask ValidateAsync(RouteConfig routeConfig, IList<Exception> errors) { var outputCachePolicyName = routeConfig.OutputCachePolicy; if (string.IsNullOrEmpty(outputCachePolicyName)) { return; } try { var policy = await _outputCachePolicyProvider.GetPolicyAsync(outputCachePolicyName); if (policy is null) { errors.Add(new ArgumentException( $"OutputCache policy '{outputCachePolicyName}' not found for route '{routeConfig.RouteId}'.")); } } catch (Exception ex) { errors.Add(new ArgumentException( $"Unable to retrieve the OutputCache policy '{outputCachePolicyName}' for route '{routeConfig.RouteId}'.", ex)); } } #else public ValueTask ValidateAsync(RouteConfig routeConfig, IList<Exception> errors) => ValueTask.CompletedTask; #endif }