public static void Register(HttpConfiguration config) { // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); // Force always JSON formatter config.Formatters .JsonFormatter .SupportedMediaTypes .Add(new MediaTypeHeaderValue("text/html")); // IoC config.DependencyResolver = new IoCResolverConfiguration(RegisterDependency.Register()); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { RegisterDependency.Register(services); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2); services.AddDbContext <ApiContext>(o => o.UseNpgsql(Configuration.GetConnectionString("SgpConnection"))); var jwtConfiguration = Configuration .GetSection(nameof(JwtTokenSettings)); services.Configure <JwtTokenSettings>(jwtConfiguration); var jwtTokenSettings = jwtConfiguration .Get <JwtTokenSettings>(); services.AddAuthentication(o => { o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme; o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme; }).AddJwtBearer(o => { o.TokenValidationParameters = new TokenValidationParameters { ValidateLifetime = true, ValidateAudience = true, ValidAudience = jwtTokenSettings.Audience, ValidateIssuer = true, ValidIssuer = jwtTokenSettings.Issuer, ValidateIssuerSigningKey = true, IssuerSigningKey = new SymmetricSecurityKey(UTF8 .GetBytes(jwtTokenSettings.IssuerSigningKey)) }; }); services.Configure <ConnectionStrings>(Configuration .GetSection(nameof(ConnectionStrings))); services.Configure <PaginacaoSettings>(Configuration .GetSection(nameof(PaginacaoSettings))); services.Configure <AutorizacaoSettings>(Configuration .GetSection(nameof(AutorizacaoSettings))); // CORS (Cross-Origin Requests) services.AddCors(options => { options.AddPolicy("CorsPolicy", builder => builder .AllowAnyOrigin() //.WithOrigins("https://origem1.com", "http://origem2.com.br") .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials() .Build()); }); services.AddSwaggerGen(o => { o.SwaggerDoc("v1", new Info { Title = "SME - API Pedagógico", Version = "v1" }); }); }