Получить запрос вне контроллера в .netcore - PullRequest
0 голосов
/ 25 октября 2018

Есть ли способ получить ответ от метода без использования контроллера.Я имею в виду, чтобы получить арендаторов из базы данных, я использую привязку атрибута и получаю ее от: "http://localhost:5000/api/tenants". Есть ли способ получить значения без использования контроллера, например службы? Например, в angularЯ использую httpclient для получения ответа. Есть ли что-то похожее в .netcore 2 webapi? Спасибо!

1 Ответ

0 голосов
/ 26 октября 2018

Для Controller он использует UseMvc middleware для направления запроса к контроллеру.

Если вы не будете использовать контроллер, вы можете попробовать пользовательское промежуточное ПО для возврата данных непосредственно на основе пути запроса.

    public class Startup
{
    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public IConfiguration Configuration { get; }

    // This method gets called by the runtime. Use this method to add services to the container.
    public void ConfigureServices(IServiceCollection services)
    {
        //your config
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
       //your config
        app.Map("/tenants", map => {
            map.Run(async context => {
                var dbContext = context.RequestServices.GetRequiredService<MVCProContext>();
                var tenants = await dbContext.Users.ToListAsync();
                await context.Response.WriteAsync(JsonConvert.SerializeObject(tenants));
            });
        }); 
        app.Run(async context => {
            await context.Response.WriteAsync($"Default response");
        });          
    }
}
...