Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
## Package Constraints

- **FluentAssertions**: Do not upgrade beyond major version 7.x due to a licensing change in version 8+.
- **Swashbuckle.AspNetCore**: Do not upgrade beyond version 6.x due to breaking changes in Microsoft.OpenApi v2.

2 changes: 1 addition & 1 deletion Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<PackageVersion Include="OpenTelemetry.Exporter.Console" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Extensions.Hosting" Version="1.15.0" />
<PackageVersion Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" Version="1.15.0" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.8.1" />
<PackageVersion Include="Scalar.AspNetCore" Version="2.13.0" />
</ItemGroup>
<!-- Test -->
<ItemGroup>
Expand Down
14 changes: 4 additions & 10 deletions sample/MinApi/Program.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Azure.Core;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using Scalar.AspNetCore;
using SampleMinimalApiSli;
using ServiceLevelIndicators;

Expand All @@ -13,14 +14,7 @@
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};

builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{

var fileName = typeof(Program).Assembly.GetName().Name + ".xml";
var filePath = Path.Combine(AppContext.BaseDirectory, fileName);
options.IncludeXmlComments(filePath);
});
builder.Services.AddOpenApi();

// Build a resource configuration action to set service information.

Expand Down Expand Up @@ -65,8 +59,8 @@
.AddServiceLevelIndicator("background_work");

app.UseUserRoute();
app.UseSwagger();
app.UseSwaggerUI();
app.MapOpenApi();
app.MapScalarApiReference();
app.UseHttpsRedirection();
app.UseServiceLevelIndicator();
app.Run();
Expand Down
2 changes: 1 addition & 1 deletion sample/MinApi/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"SampleMinimalApiSli": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger",
"launchUrl": "scalar/v1",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
Expand Down
3 changes: 2 additions & 1 deletion sample/MinApi/SampleMinimalApiSli.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
<PackageReference Include="Azure.Core" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Scalar.AspNetCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ServiceLevelIndicators.Asp\src\ServiceLevelIndicators.Asp.csproj" />
Expand Down
13 changes: 4 additions & 9 deletions sample/WebApi/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
using Microsoft.Extensions.Options;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using Scalar.AspNetCore;
using SampleWebApplicationSLI;
using ServiceLevelIndicators;

Expand All @@ -13,13 +14,7 @@
builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(options =>
{

var fileName = typeof(Program).Assembly.GetName().Name + ".xml";
var filePath = Path.Combine(AppContext.BaseDirectory, fileName);
options.IncludeXmlComments(filePath);
});
builder.Services.AddOpenApi();
builder.Services.AddProblemDetails();

// Build a resource configuration action to set service information.
Expand Down Expand Up @@ -47,8 +42,8 @@

var app = builder.Build();

app.UseSwagger();
app.UseSwaggerUI();
app.MapOpenApi();
app.MapScalarApiReference();
app.UseHttpsRedirection();
app.UseServiceLevelIndicator();
app.UseAuthorization();
Expand Down
2 changes: 1 addition & 1 deletion sample/WebApi/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"SampleWebApplicationSLI": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "swagger",
"launchUrl": "scalar/v1",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
Expand Down
3 changes: 2 additions & 1 deletion sample/WebApi/SampleWebApplicationSLI.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
<PackageReference Include="Azure.Core" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Scalar.AspNetCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ServiceLevelIndicators.Asp\src\ServiceLevelIndicators.Asp.csproj" />
Expand Down
69 changes: 0 additions & 69 deletions sample/WebApiVersioned/AddApiVersionMetadata.cs

This file was deleted.

89 changes: 0 additions & 89 deletions sample/WebApiVersioned/ConfigureSwaggerDefaultOptions.cs

This file was deleted.

39 changes: 6 additions & 33 deletions sample/WebApiVersioned/Program.cs
Original file line number Diff line number Diff line change
@@ -1,31 +1,15 @@
using Azure.Core;
using Microsoft.Extensions.Options;
using OpenTelemetry.Metrics;
using OpenTelemetry.Resources;
using SampleVersionedWebApplicationSLI;
using Scalar.AspNetCore;
using ServiceLevelIndicators;
using Swashbuckle.AspNetCore.SwaggerGen;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.

builder.Services.AddControllers();
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddTransient<IConfigureOptions<SwaggerGenOptions>, ConfigureSwaggerDefaultOptions>();
builder.Services.AddSwaggerGen(
options =>
{
// add a custom operation filter which sets default values
options.OperationFilter<AddApiVersionMetadata>();

var fileName = typeof(Program).Assembly.GetName().Name + ".xml";
var filePath = Path.Combine(AppContext.BaseDirectory, fileName);

// integrate XML comments
options.IncludeXmlComments(filePath);
});
builder.Services.AddOpenApi();
builder.Services.AddApiVersioning()
.AddMvc()
.AddApiExplorer();
Expand All @@ -49,21 +33,10 @@

var app = builder.Build();

app.UseSwagger();
app.UseSwaggerUI(
options =>
{
options.RoutePrefix = string.Empty; // make home page the swagger UI
var descriptions = app.DescribeApiVersions();

// build a swagger endpoint for each discovered API version
foreach (var description in descriptions)
{
var url = $"/swagger/{description.GroupName}/swagger.json";
var name = description.GroupName.ToUpperInvariant();
options.SwaggerEndpoint(url, name);
}
});
// TODO: Use .AddOpenApi() from Asp.Versioning.OpenApi with WithDocumentPerVersion()
// and AddScalarTransformers() once a stable release is available.
app.MapOpenApi();
app.MapScalarApiReference();

// Random delay.
Random rnd = new Random();
Expand Down
1 change: 1 addition & 0 deletions sample/WebApiVersioned/Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"SampleVersionedWebApplicationSLI": {
"commandName": "Project",
"launchBrowser": true,
"launchUrl": "scalar/v1",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
<PackageReference Include="Azure.Core" />
<PackageReference Include="OpenTelemetry.Exporter.OpenTelemetryProtocol" />
<PackageReference Include="OpenTelemetry.Extensions.Hosting" />
<PackageReference Include="Swashbuckle.AspNetCore" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Scalar.AspNetCore" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\ServiceLevelIndicators.Asp.ApiVersioning\src\ServiceLevelIndicators.Asp.ApiVersioning.csproj" />
Expand Down