source: backend/Program.cs@ b66b3ac

Last change on this file since b66b3ac was b66b3ac, checked in by Danilo <danilo.najkov@…>, 2 years ago

Add project files.

  • Property mode set to 100644
File size: 2.1 KB
Line 
1using backend.Data;
2using backend.Helpers;
3using backend.Services;
4using Microsoft.EntityFrameworkCore;
5using Microsoft.OpenApi.Models;
6using Swashbuckle.AspNetCore.Swagger;
7using WebApi.Helpers;
8
9var builder = WebApplication.CreateBuilder(args);
10
11// Add services to the container.
12builder.Services.Configure<AppSettings>(builder.Configuration.GetSection("AppSettings"));
13builder.Services.AddControllers();
14// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
15builder.Services.AddEndpointsApiExplorer();
16builder.Services.AddSwaggerGen(c =>
17{
18 c.SwaggerDoc("v1", new OpenApiInfo() { Title = "resTools backend", Version = "v1" });
19 c.AddSecurityDefinition("Bearer",
20 new OpenApiSecurityScheme
21 {
22 In = Microsoft.OpenApi.Models.ParameterLocation.Header,
23 Description = "Please enter into field the word 'Bearer' following by space and JWT",
24 Name = "Authorization",
25 Type = Microsoft.OpenApi.Models.SecuritySchemeType.ApiKey,
26 Scheme="Bearer"
27 });
28 c.AddSecurityRequirement(new OpenApiSecurityRequirement()
29 {
30 {
31 new OpenApiSecurityScheme
32 {
33 Reference = new OpenApiReference
34 {
35 Type = ReferenceType.SecurityScheme,
36 Id = "Bearer"
37 },
38 Name = "Bearer",
39 In = ParameterLocation.Header,
40
41 },
42 new List<string>()
43 }
44 });
45});
46builder.Services.AddScoped<IUserService, UserService>();
47
48builder.Services.AddDbContext<DataContext>(p => p.UseNpgsql(builder.Configuration.GetConnectionString("DefaultConnection")));
49
50var app = builder.Build();
51
52app.UseCors(x => x
53 .AllowAnyOrigin()
54 .AllowAnyMethod()
55 .AllowAnyHeader());
56
57// custom jwt auth middleware
58app.UseMiddleware<JwtMiddleware>();
59
60// Configure the HTTP request pipeline.
61if (app.Environment.IsDevelopment())
62{
63 app.UseSwagger();
64 app.UseSwaggerUI();
65}
66
67app.UseHttpsRedirection();
68
69app.UseAuthorization();
70
71app.MapControllers();
72
73app.Run();
Note: See TracBrowser for help on using the repository browser.