Die Frage ist also: Gibt es eine elegante Möglichkeit, ein Ergebnis direkt von der Middleware zurückzugeben?
Ich habe die Wolverine-Dokumentation gelesen und alle möglichen Variationen ausprobiert, aber nichts hat geholfen. Wenn ich mich nicht irre, ist es möglich, das Middleware-Ergebnis als Handler-Parameter zurückzugeben, aber das erscheint mir äußerst unansehnlich. Ich müsste dann jeden Handler prüfen lassen, ob er etwas usw. und andere Probleme enthält.
Ich möchte die Wolverine.HTTP-Bibliothek nicht verwenden. Ich werde diese Logik an anderen Stellen als WebApi verwenden.
OutputDto
Code: Select all
public class OutputDto
{
public bool Valid { get; set; }
}
Code: Select all
public class MyHandler
{
public Task Handle(InputDto input)
{
return Task.FromResult(new OutputDto() { Valid = true });
}
}
Code: Select all
public class MyMiddleware
{
public async Task BeforeAsync(InputDto input)
{
return (HandlerContinuation.Stop, new OutputDto() { Valid = false });
}
}
Code: Select all
private readonly IMessageBus _bus;
public WeatherForecastController(IMessageBus bus)
{
_bus = bus;
}
[HttpGet(Name = "GetWeatherForecast")]
public async Task Get()
{
var a = await _bus.InvokeAsync(new InputDto { Id = 5 });
return a;
}
Code: Select all
builder.UseWolverine(options =>
{
options.Policies.AddMiddleware();
});
Mobile version