Как сделать веб-приложение полностью независимым от веб-API - PullRequest
0 голосов
/ 04 сентября 2018

Я занимаюсь разработкой и веб-приложением со службами, и для этого я разрабатываю два разных проекта, один для веб-приложения и другой для веб-API. Прямо сейчас я застрял, потому что я просто использую службы REST в своем веб-приложении, но мне нужно что-то исправить, веб-приложение должно быть независимым от веб-API, поэтому я не хочу, чтобы веб-приложение зависело от моего веб-приложения.

Так что проблема в том, что в моих файлах веб-приложений, program.cs и startup.cs я вызываю контекст из API, но я не знаю, нужны ли они мне, и теперь я остановлен, потому что мне нужно получить способ или знать, как я могу превратить веб-приложение в полностью независимую форму веб-API, но в то же время использовать сервисы из API, как у меня сейчас.

Startup.cs

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)
    {
        services.AddDbContext<MainContext>(options =>
                options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

        services.AddIdentity<ApplicationUser, IdentityRole> (options => { options.User.AllowedUserNameCharacters = "ãéabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-._@+"; options.User.RequireUniqueEmail = true; })
                .AddEntityFrameworkStores<MainContext>()
                .AddDefaultTokenProviders();

        services.AddSingleton<IEmailSender, EmailSender>();
        services.Configure<AuthMessageSenderOptions>(Configuration);

        // Add application services.
        services.AddTransient<IEmailSender, EmailSender>();
        services.AddMvc();


    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider services)
    {
        if (env.IsDevelopment())
        {
            app.UseBrowserLink();
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseExceptionHandler("/Home/Error");
        }

        app.UseStaticFiles();

        app.UseAuthentication();

        app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller}/{action}/{id?}",
                defaults: new { controller = "Home", action = "HomePage" });
        });

        //new UserRoleSeed(services).Seed().Wait();
    }

Program.cs

        public static void Main(string[] args)
    {
        var host = BuildWebHost(args);

        using (var scope = host.Services.CreateScope())
        {
            var services = scope.ServiceProvider;
            try
            {
                var context = services.GetRequiredService<MainContext>();
            }
            catch (Exception ex)
            {
                var logger = services.GetRequiredService<ILogger<Program>>();
                logger.LogError(ex, "An error occurred while seeding the database.");
            }
        }

        host.Run();
    }

    public static IWebHost BuildWebHost(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .Build();
}

Буду признателен за вашу помощь, если кто-нибудь поможет мне или получит представление об этом ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...