mirror of
https://github.com/fiodarsazanavets/aspire-13-examples.git
synced 2026-06-20 12:23:14 +00:00
62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
|
using OnlineShop.ApiService;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
builder.AddServiceDefaults();
|
|
|
|
builder.Services.AddProblemDetails();
|
|
|
|
builder.Services.AddOpenApi();
|
|
|
|
builder.Services.AddHttpClient(
|
|
"OidcBackchannel", o => o.BaseAddress = new("http://idp"));
|
|
|
|
builder.Services.AddAuthentication(options =>
|
|
{
|
|
options.DefaultAuthenticateScheme =
|
|
JwtBearerDefaults.AuthenticationScheme;
|
|
options.DefaultChallengeScheme =
|
|
JwtBearerDefaults.AuthenticationScheme;
|
|
|
|
})
|
|
.AddJwtBearer()
|
|
.ConfigureApiJwt();
|
|
|
|
|
|
var app = builder.Build();
|
|
|
|
app.UseExceptionHandler();
|
|
|
|
if (app.Environment.IsDevelopment())
|
|
{
|
|
app.MapOpenApi();
|
|
}
|
|
|
|
string[] summaries = ["Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"];
|
|
|
|
app.MapGet("/", () => "API service is running. Navigate to /weatherforecast to see sample data.");
|
|
|
|
app.MapGet("/weatherforecast", () =>
|
|
{
|
|
var forecast = Enumerable.Range(1, 5).Select(index =>
|
|
new WeatherForecast
|
|
(
|
|
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
|
|
Random.Shared.Next(-20, 55),
|
|
summaries[Random.Shared.Next(summaries.Length)]
|
|
))
|
|
.ToArray();
|
|
return forecast;
|
|
})
|
|
.WithName("GetWeatherForecast");
|
|
|
|
app.MapDefaultEndpoints();
|
|
|
|
app.Run();
|
|
|
|
record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
|
|
{
|
|
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
|
|
}
|