/
aprogrammer
/
reverse-proxy-ms-yarp
Обзор
Документация
Войти
/
aprogrammer
/
reverse-proxy-ms-yarp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
testassets/ReverseProxy.Code/MyTransformProvider.cs
55 строк
2 KB
Miha Zupan
Drop 3.1 and 5.0 TFMs (#1728)
23 май 2022, 20:08
Не верифицирован
23 май 2022, 20:08
94bd127
Код
Авторство
О чём код?
// Copyright (c) Microsoft Corporation. // Licensed under the MIT License. using System; using System.Net.Http; using Yarp.ReverseProxy.Transforms; using Yarp.ReverseProxy.Transforms.Builder; namespace Yarp.ReverseProxy.Sample; internal class MyTransformProvider : ITransformProvider { public void ValidateRoute(TransformRouteValidationContext context) { // Check all routes for a custom property and validate the associated transform data. if (context.Route.Metadata?.TryGetValue("CustomMetadata", out var value) ?? false) { if (string.IsNullOrEmpty(value)) { context.Errors.Add(new ArgumentException("A non-empty CustomMetadata value is required")); } } } public void ValidateCluster(TransformClusterValidationContext context) { // Check all clusters for a custom property and validate the associated transform data. if (context.Cluster.Metadata?.TryGetValue("CustomMetadata", out var value) ?? false) { if (string.IsNullOrEmpty(value)) { context.Errors.Add(new ArgumentException("A non-empty CustomMetadata value is required")); } } } public void Apply(TransformBuilderContext transformBuildContext) { // Check all routes for a custom property and add the associated transform. if ((transformBuildContext.Route.Metadata?.TryGetValue("CustomMetadata", out var value) ?? false) || (transformBuildContext.Cluster?.Metadata?.TryGetValue("CustomMetadata", out value) ?? false)) { if (string.IsNullOrEmpty(value)) { throw new ArgumentException("A non-empty CustomMetadata value is required"); } transformBuildContext.AddRequestTransform(transformContext => { transformContext.ProxyRequest.Options.Set(new HttpRequestOptionsKey<string>("CustomMetadata"), value); return default; }); } } }