tag scraping route net hacer for con como asp c# asp.net-web-api asp.net-core asp.net-core-mvc

c# - scraping - input asp for



Crear un proxy API en ASP.NET MVC 6 (2)

Estoy migrando el código de un proyecto existente de WebApi 2 y me pregunto cómo realizar el equivalente al código siguiente en ASP.NET 5 MVC 6. No veo ningún código de ruta que acepte una opción de controlador.

config.Routes.MapHttpRoute("SomeApiProxy", "api/someapi/{*path}", handler: HttpClientFactory.CreatePipeline(new HttpClientHandler(), new DelegatingHandler[] {new ForwardingProxyHandler(new Uri("http://some-api.com/api/v2/"))}), defaults: new {path = RouteParameter.Optional}, constraints: null );


Esto está fuera de mi cabeza, pero podrías crear un middleware. Esto funcionaría para obtener solicitudes sin encabezados, pero podría modificarse para hacer más.

app.Use( async ( context, next ) => { var pathAndQuery = context.Request.GetUri().PathAndQuery; const string apiEndpoint = "/api/someapi/"; if ( !pathAndQuery.StartsWith( apiEndpoint ) ) //continues through the rest of the pipeline await next(); else { using ( var httpClient = new HttpClient() ) { var response = await httpClient.GetAsync( "http://some-api.com/api/v2/" + pathAndQuery.Replace( apiEndpoint, "" ) ); var result = await response.Content.ReadAsStringAsync(); context.Response.StatusCode = (int)response.StatusCode; await context.Response.WriteAsync( result ); } } } );

Si pones esta aplicación befire. UseMvc () interceptará cualquier solicitud donde la ruta comience con / api / someapi