Заставить сервер использовать конвейеры запросов и принимать вызовы Blazor
Я использую browser
-hosted Blazor
и в моем server
проект я хочу использовать дополнительные middleware
"S.
Проблема в:
Как я могу заставить мой сервер отвечать обоим Blazor
звонки и использовать конвейеры запросов для api
звонки?
Код
Запуск сервера
public void Configure(IApplicationBuilder app)
{
app.UseBlazor<Client.Startup>();
app.Map("/apiRoute", x => {
Console.WriteLine("got here");
});
PS В следующем коде я могу получить доступ Blazor
маршруты, но я не могу получить доступ к apiRoute
, Есть ли способ сделать эту работу, учитывая, что я хочу создать конвейеры?
Я разместил pipeline
как до, так и после app.UseBlazor
безрезультатно. Это просто не получит удар.
Обновить
Видимо я сделал middleware
работает вместе Blazor
со следующими ограничениями:
Использование промежуточного программного обеспечения перед использованием
Blazor
в конвейере запросовДля пользовательских
routes
кажется расширениеapp.Map(route,x=>...)
не работает сBlazor
поэтому я должен был обернуть его внутриapp.Use
расширение.
Код
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
app.UseDeveloperExceptionPage();
app.Use(async (con, next) => {
app.Map("/myCustomRoute", f => {
app.Use(async (c, n) => {
await con.Response.Body.WriteAsync(Encoding.UTF8.GetBytes("asa"));
});
});
});
app.UseBlazor<Client.Startup>();
}
С помощью приведенного выше кода я могу получить доступ Blazor
страницы, а также отправка с Postman
запрос по указанному маршруту (в нашем случае myCustomRoute
), который получил удар, хотя я до сих пор не получил ответ Postman
, Что я до сих пор не понимаю, так это почему я не могу разветвлять свой конвейер (app.Map
) и использовать Blazor
расширение дальше, так как они разные проблемы.
пример
Почему это не работает:
app.Map("myroute1",...);
app.Map("myroute2",...);
app.UseBlazor(...);
и это работает:
app.Use(async(x,con)=>{
app.Map(route1,...);
app.Map(route2....);
});
app.UseBlazor(....)
2 ответа
Попробуй это:
Удалить app.Map("/route", (x => { --- }
И измените свой код на что-то вроде этого:
var response = await this.client.PostAsync("/route",
content);
Видимо я сделал middleware
работает вместе Blazor
со следующими ограничениями:
Использование промежуточного программного обеспечения перед использованием
Blazor
в конвейере запросовДля пользовательских
routes
кажется расширениеapp.Map(route,x=>...)
не работает сBlazor
поэтому я должен был обернуть его внутриapp.Use
расширение.
Код
public void Configure(IApplicationBuilder app, IHostingEnvironment env) {
app.UseDeveloperExceptionPage();
app.Use(async (con, next) => {
app.Map("/myCustomRoute", f => {
app.Use(async (c, n) => {
await con.Response.Body.WriteAsync(Encoding.UTF8.GetBytes("asa"));
});
});
});
app.UseBlazor<Client.Startup>();
}
Приведенный выше код работает, если я получаю доступ Blazor
страницы, а также отправка с Postman
запрос по указанному маршруту (в нашем случае myCustomRoute
). Что я до сих пор не понимаю, так это почему я не могу разветвлять свой конвейер (app.Map
) и использовать Blazor
расширение дальше, так как они разные проблемы.
пример
Почему это не работает:
app.Map("myroute1",...);
app.Map("myroute2",...);
app.UseBlazor(...);
и это работает:
app.Use(async(x,con)=>{
app.Map(route1,...);
app.Map(route2....);
});
app.UseBlazor(....)