미들웨어는 요청 및 응답을 처리하기 위해 애플리케이션 파이프라인으로 조합되는 소프트웨어 구성 요소입니다.
각 구성 요소는 파이프라인의 다음 구성 요소에 요청을 전달할지 여부를 선택하고 파이프라인에서 다음 구성 요소가 호출되기 전후에 특정 작업을 수행할 수 있습니다.
맵 확장은 파이프라인 분기를 위한 규칙으로 사용됩니다.
Map 확장 메서드는 요청 경로를 기반으로 요청 대리자를 일치시키는 데 사용됩니다. Map은 단순히 경로와 별도의 미들웨어 파이프라인을 구성하는 기능을 허용합니다.
다음 예에서 기본 경로가 /maptest인 모든 요청은 HandleMapTest 메서드에 구성된 파이프라인에 의해 처리됩니다.
예시
private static void HandleMapTest(IApplicationBuilder app){ app.Run(async context =>{ await context.Response.WriteAsync("Map Test Successful"); }); } public void ConfigureMapping(IApplicationBuilder app){ app.Map("/maptest", HandleMapTest); }
경로 기반 매핑 외에도 MapWhen 메서드는 조건자 기반 미들웨어 분기를 지원하므로 매우 유연한 방식으로 별도의 파이프라인을 구성할 수 있습니다.
Func
private static void HandleBranch(IApplicationBuilder app){ app.Run(async context =>{ await context.Response.WriteAsync("Branch used."); }); } public void ConfigureMapWhen(IApplicationBuilder app){ app.MapWhen(context => { return context.Request.Query.ContainsKey("branch"); }, HandleBranch); app.Run(async context =>{ await context.Response.WriteAsync("Hello from " + _environment); }); }
지도를 중첩할 수도 있습니다.
app.Map("/level1", level1App => { level1App.Map("/level2a", level2AApp => { // "/level1/level2a" //... }); level1App.Map("/level2b", level2BApp => { // "/level1/level2b" //... }); });