У меня есть часть кода ASP.NET Core, которую я хочу извлечь в пользовательское промежуточное программное обеспечение. В частности, должна быть реализована следующая логика: когда запрашивается определенный путь mapPath
, прокси-запрос на другой хост, идентифицированный proxyUrl
.Промежуточное программное обеспечение, которое вызывает другие средние
Следующий код в Startup.cs
делает трюк:
var proxyUri = new Uri(proxyUrl);
builder.Map(
mapPath,
appMapped =>
{
appMapped.RunProxy(
new ProxyOptions
{
Scheme = proxyUri.Scheme,
Host = proxyUri.Host,
Port = proxyUri.Port.ToString()
});
}
);
Ну, он использует app.Map()
расшириться, а затем прокси для промежуточного прокси запрос.
(Как) Можно ли извлечь эту логику в обычное и повторно используемое промежуточное ПО? Или я не могу использовать «настоящее» промежуточное ПО здесь? Я могу, конечно, написать метод расширения, например. app.UseMapProxy()
и положил туда логику 1: 1, но я просто подумал, могу ли я сделать это с «настоящим» классом промежуточного слоя.
Хорошо, вот что я имел в виду, когда я указал метод 'app.UseMapProxy()', это просто расширение. Я просто задавался вопросом, должно ли это быть «настоящим» промежуточным программным обеспечением. Спасибо за указание на это. – Matthias
Еще один вопрос: как бы реализовать компонент, который добавляет реальные функции для каждого запроса, но также хочет использовать другие средние? Извлеките материал для каждого запроса в специальное промежуточное программное обеспечение и создайте его вместе с другими посредниками в расширении 'IApplicationBuilder'? – Matthias
Да, это должно сработать. – Tratcher