Skip to content

Commit

Permalink
add nswag swagger
Browse files Browse the repository at this point in the history
  • Loading branch information
dominikus1993 committed May 25, 2024
1 parent aac9e8a commit 38ac94f
Show file tree
Hide file tree
Showing 9 changed files with 333 additions and 112 deletions.
6 changes: 3 additions & 3 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
</PackageVersion>
<PackageVersion Include="MemoryPack" Version="1.21.1" />
<PackageVersion Include="Meziantou.Extensions.Logging.Xunit" Version="1.0.7" />
<PackageVersion Include="Microsoft.AspNetCore.OpenApi" Version="8.0.5" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Hosting" Version="8.0.0" />
Expand All @@ -35,6 +36,8 @@
<PackageVersion Include="Npgsql.OpenTelemetry" Version="8.0.3" />
<PackageVersion Include="NSubstitute" Version="5.1.0" />
<PackageVersion Include="NSubstitute.Analyzers.CSharp" Version="1.0.17" />
<PackageVersion Include="NSwag.AspNetCore" Version="14.0.7" />
<PackageVersion Include="NSwag.Generation.AspNetCore" Version="14.0.7" />
<PackageVersion Include="OneOf" Version="3.0.271" />
<PackageVersion Include="OneOf.SourceGenerator" Version="3.0.271" />
<PackageVersion Include="OpenSearch.Client" Version="1.7.1" />
Expand All @@ -51,9 +54,6 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageVersion>
<PackageVersion Include="StackExchange.Redis" Version="2.7.33" />
<PackageVersion Include="Swashbuckle.AspNetCore" Version="6.6.2" />
<PackageVersion Include="Swashbuckle.AspNetCore.Swagger" Version="6.5.0" />
<PackageVersion Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.5.0" />
<PackageVersion Include="System.Drawing.Common" Version="7.0.0" />
<PackageVersion Include="System.Linq.Async" Version="6.0.1" />
<PackageVersion Include="System.Memory" Version="4.5.5" />
Expand Down
21 changes: 11 additions & 10 deletions src/Apps/Basket.Api/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -573,16 +573,6 @@
"NSwag.Core": "14.0.7"
}
},
"NSwag.Generation.AspNetCore": {
"type": "Transitive",
"resolved": "14.0.7",
"contentHash": "j2sJxTyeTmp8xD/YeW6D8U0Y5hea9ruAlL8XV4GWJHJzx0D9tp4MV1ZhJCvXUfdXV5Dnu+bkOxaY4SQWa+Un8Q==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"NSwag.Generation": "14.0.7"
}
},
"OpenTelemetry": {
"type": "Transitive",
"resolved": "1.8.1",
Expand Down Expand Up @@ -1110,6 +1100,17 @@
"resolved": "13.0.3",
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
"NSwag.Generation.AspNetCore": {
"type": "CentralTransitive",
"requested": "[14.0.7, )",
"resolved": "14.0.7",
"contentHash": "j2sJxTyeTmp8xD/YeW6D8U0Y5hea9ruAlL8XV4GWJHJzx0D9tp4MV1ZhJCvXUfdXV5Dnu+bkOxaY4SQWa+Un8Q==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"NSwag.Generation": "14.0.7"
}
},
"OneOf": {
"type": "CentralTransitive",
"requested": "[3.0.271, )",
Expand Down
4 changes: 3 additions & 1 deletion src/Apps/Catalog.Api/Catalog.Api.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,10 @@
<ItemGroup>
<PackageReference Include="Carter" />
<PackageReference Include="FluentValidation.AspNetCore" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" />
<PackageReference Include="Npgsql.OpenTelemetry" />
<PackageReference Include="NSwag.AspNetCore" />
<PackageReference Include="NSwag.Generation.AspNetCore" />
<PackageReference Include="OpenSearch.Client" />
<PackageReference Include="Swashbuckle.AspNetCore" />
</ItemGroup>
</Project>
10 changes: 3 additions & 7 deletions src/Apps/Catalog.Api/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

using FluentValidation;

using Hosting.Extensions;
using Hosting.HealthChecks;

using Microsoft.OpenApi.Models;
Expand All @@ -30,23 +31,18 @@
builder.Services.AddCarter();
builder.Services.AddInfrastructure(builder.Configuration);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "Catalog.Api", Version = "v1" });
});
builder.Services.AddSwaggerDocument();

builder.Services.AddHealthChecks();

var app = builder.Build();

app.UseSwagger();
app.UseSwaggerUI();
app.UseHttpLogging();

app.UseAuthentication();
app.UseAuthorization();
app.MapCarter();
app.MapSwagger();
app.UseSwaggerUi();
app.MapHealthCheckEndpoints();

app.Run();
Expand Down
169 changes: 130 additions & 39 deletions src/Apps/Catalog.Api/packages.lock.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,15 @@
"FluentValidation.DependencyInjectionExtensions": "11.5.1"
}
},
"Microsoft.AspNetCore.OpenApi": {
"type": "Direct",
"requested": "[8.0.5, )",
"resolved": "8.0.5",
"contentHash": "5DKqBOVuGkX6EQsA34MmzVo7UX/6HASveBObPe+E8GKDm391PvxDvgufhhywnbGvEl7DXUqfwdNr7l0efwlssQ==",
"dependencies": {
"Microsoft.OpenApi": "1.4.3"
}
},
"Npgsql.OpenTelemetry": {
"type": "Direct",
"requested": "[8.0.3, )",
Expand All @@ -32,6 +41,32 @@
"OpenTelemetry.API": "1.6.0"
}
},
"NSwag.AspNetCore": {
"type": "Direct",
"requested": "[14.0.7, )",
"resolved": "14.0.7",
"contentHash": "Y6AMEb0diVTsxwc4LKSa6DLFX5tSbne79I/IWn5lYCzOp6dp2b9KbqQKzHXmc7X5Ux1xE7yCPLI5CVVft03SDg==",
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.3",
"Microsoft.Extensions.FileProviders.Embedded": "8.0.0",
"NSwag.Annotations": "14.0.7",
"NSwag.Core": "14.0.7",
"NSwag.Core.Yaml": "14.0.7",
"NSwag.Generation": "14.0.7",
"NSwag.Generation.AspNetCore": "14.0.7"
}
},
"NSwag.Generation.AspNetCore": {
"type": "Direct",
"requested": "[14.0.7, )",
"resolved": "14.0.7",
"contentHash": "j2sJxTyeTmp8xD/YeW6D8U0Y5hea9ruAlL8XV4GWJHJzx0D9tp4MV1ZhJCvXUfdXV5Dnu+bkOxaY4SQWa+Un8Q==",
"dependencies": {
"Microsoft.Extensions.DependencyInjection.Abstractions": "8.0.0",
"Microsoft.Extensions.Options": "8.0.0",
"NSwag.Generation": "14.0.7"
}
},
"OpenSearch.Client": {
"type": "Direct",
"requested": "[1.7.1, )",
Expand All @@ -41,18 +76,6 @@
"OpenSearch.Net": "1.7.1"
}
},
"Swashbuckle.AspNetCore": {
"type": "Direct",
"requested": "[6.6.2, )",
"resolved": "6.6.2",
"contentHash": "+NB4UYVYN6AhDSjW0IJAd1AGD8V33gemFNLPaxKTtPkHB+HaKAKf9MGAEUPivEWvqeQfcKIw8lJaHq6LHljRuw==",
"dependencies": {
"Microsoft.Extensions.ApiDescription.Server": "6.0.5",
"Swashbuckle.AspNetCore.Swagger": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerGen": "6.6.2",
"Swashbuckle.AspNetCore.SwaggerUI": "6.6.2"
}
},
"AspNetCore.HealthChecks.UI.Core": {
"type": "Transitive",
"resolved": "8.0.1",
Expand Down Expand Up @@ -118,8 +141,8 @@
},
"Microsoft.Extensions.ApiDescription.Server": {
"type": "Transitive",
"resolved": "6.0.5",
"contentHash": "Ckb5EDBUNJdFWyajfXzUIMRkhf52fHZOQuuZg/oiu8y7zDCVwD0iHhew6MnThjHmevanpxL3f5ci2TtHQEN6bw=="
"resolved": "6.0.3",
"contentHash": "/FkS66n3wJaUR+Grkg+dMMIyrfmfkEybNoyOhdBMURxavPx6Q1Kn7NY5Ho41s975gpXA9Pnw7WRJbxwICLFgbw=="
},
"Microsoft.Extensions.Configuration.Abstractions": {
"type": "Transitive",
Expand Down Expand Up @@ -256,6 +279,14 @@
"Microsoft.Extensions.Primitives": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Embedded": {
"type": "Transitive",
"resolved": "8.0.0",
"contentHash": "TuRh62KcoOvaSDCbtHT8K0WYptZysYQHPRRNfOgqF7ZUtUL4O0WMV8RdxbtDFJDsg3jv9bgHwXbrgwTeI9+5uQ==",
"dependencies": {
"Microsoft.Extensions.FileProviders.Abstractions": "8.0.0"
}
},
"Microsoft.Extensions.FileProviders.Physical": {
"type": "Transitive",
"resolved": "8.0.0",
Expand Down Expand Up @@ -382,8 +413,49 @@
},
"Microsoft.OpenApi": {
"type": "Transitive",
"resolved": "1.2.3",
"contentHash": "Nug3rO+7Kl5/SBAadzSMAVgqDlfGjJZ0GenQrLywJ84XGKO0uRqkunz5Wyl0SDwcR71bAATXvSdbdzPrYRYKGw=="
"resolved": "1.4.3",
"contentHash": "rURwggB+QZYcSVbDr7HSdhw/FELvMlriW10OeOzjPT7pstefMo7IThhtNtDudxbXhW+lj0NfX72Ka5EDsG8x6w=="
},
"Namotion.Reflection": {
"type": "Transitive",
"resolved": "3.1.1",
"contentHash": "Qn0wM7u9TpSpja2x8UVexr2bLHb1DGMNhD2TCz3woklxaY1oH+Sitrw9fg/4YbNoNtczeH2jf+yPdXMQlgvFlQ==",
"dependencies": {
"Microsoft.CSharp": "4.3.0"
}
},
"NJsonSchema": {
"type": "Transitive",
"resolved": "11.0.0",
"contentHash": "yJviNfW8U8+ACJO0VyiNuNIDGoRDZO5awNfjL1+6iO7TVI5pfjun+ZBVsv1hLga/IVlhnUPpMj8VuhQAYfXD/A==",
"dependencies": {
"NJsonSchema.Annotations": "11.0.0",
"Namotion.Reflection": "3.1.1",
"Newtonsoft.Json": "13.0.3"
}
},
"NJsonSchema.Annotations": {
"type": "Transitive",
"resolved": "11.0.0",
"contentHash": "kbUrZfspa+Y5Kz0OaRbLQxLtVydWFvkY1CpwfKmravZXG2icphuYHR58EwBZuCQWJb/BL81PGP4FjpDNBFnn6Q=="
},
"NJsonSchema.NewtonsoftJson": {
"type": "Transitive",
"resolved": "11.0.0",
"contentHash": "MCugHG7dyQhfwgY1NIaCZNFQzTYwmQpfwm15bksG/Ng1H8up/4DxxH1M9fDtV5xqYBrWGjMRSmTokGr9wwLCPg==",
"dependencies": {
"NJsonSchema": "11.0.0",
"Newtonsoft.Json": "13.0.3"
}
},
"NJsonSchema.Yaml": {
"type": "Transitive",
"resolved": "11.0.0",
"contentHash": "riCNrkN2YOVYyvvJjtc7zdIYXQT6/l7FMe0XFGH5rfxWN4/Iy/T60+ZzketAIMhzqn65WPmFZ3NUJ1nGtGCrMw==",
"dependencies": {
"NJsonSchema": "11.0.0",
"YamlDotNet": "13.7.1"
}
},
"Npgsql": {
"type": "Transitive",
Expand All @@ -393,6 +465,37 @@
"Microsoft.Extensions.Logging.Abstractions": "8.0.0"
}
},
"NSwag.Annotations": {
"type": "Transitive",
"resolved": "14.0.7",
"contentHash": "eSuuWtX9rb40LPl4srrw4u1KUdc5uKAoTDbQE4wVl1sjx6ErVAjkFEkFiuzb5cE2jvvXI5OrsH1s83mB74KyUA=="
},
"NSwag.Core": {
"type": "Transitive",
"resolved": "14.0.7",
"contentHash": "cY76rHGo4Whmxwk4yxdNiuiH2l09egC+m8690KVqOHIH+FpHpJB3S18vNhF700DwigiwuFj6tmy4YMZFuGIzgw==",
"dependencies": {
"NJsonSchema": "11.0.0"
}
},
"NSwag.Core.Yaml": {
"type": "Transitive",
"resolved": "14.0.7",
"contentHash": "N18UgPPzaVPiJdBiLzJhUi7ezzEQZqL552TkMJlnWdJVvlSC2XuVGsvDf9O5PBnoPx0qhqjfsiothNcuKuGaSQ==",
"dependencies": {
"NJsonSchema.Yaml": "11.0.0",
"NSwag.Core": "14.0.7"
}
},
"NSwag.Generation": {
"type": "Transitive",
"resolved": "14.0.7",
"contentHash": "8C5vwhDLk2j5WXfEAYiIYQ9DHx8qAUcqBhizcR+9DJj+KSqYOUGOz8BILIBjMJOEnO4LEJTANbBLU1gh2HBhoQ==",
"dependencies": {
"NJsonSchema.NewtonsoftJson": "11.0.0",
"NSwag.Core": "14.0.7"
}
},
"OpenTelemetry": {
"type": "Transitive",
"resolved": "1.8.1",
Expand Down Expand Up @@ -420,14 +523,6 @@
"OpenTelemetry.Api": "1.8.1"
}
},
"Swashbuckle.AspNetCore.SwaggerGen": {
"type": "Transitive",
"resolved": "6.6.2",
"contentHash": "zv4ikn4AT1VYuOsDCpktLq4QDq08e7Utzbir86M5/ZkRaLXbCPF11E1/vTmOiDzRTl0zTZINQU2qLKwTcHgfrA==",
"dependencies": {
"Swashbuckle.AspNetCore.Swagger": "6.6.2"
}
},
"System.Buffers": {
"type": "Transitive",
"resolved": "4.5.1",
Expand All @@ -453,6 +548,11 @@
"resolved": "4.5.4",
"contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg=="
},
"YamlDotNet": {
"type": "Transitive",
"resolved": "13.7.1",
"contentHash": "X4m1PnFcJwvAj1sCDMntg/eZcX96CJLrWMiYnq41KqhFVZPuw63ZTSxIGqgdCwHWHvCAyTxheELC/VDf1HsU2A=="
},
"catalog": {
"type": "Project",
"dependencies": {
Expand Down Expand Up @@ -552,6 +652,12 @@
"Microsoft.Extensions.Options": "8.0.0"
}
},
"Newtonsoft.Json": {
"type": "CentralTransitive",
"requested": "[13.0.3, )",
"resolved": "13.0.3",
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
},
"OneOf": {
"type": "CentralTransitive",
"requested": "[3.0.271, )",
Expand Down Expand Up @@ -617,21 +723,6 @@
"OpenTelemetry.Api.ProviderBuilderExtensions": "1.8.0"
}
},
"Swashbuckle.AspNetCore.Swagger": {
"type": "CentralTransitive",
"requested": "[6.5.0, )",
"resolved": "6.5.0",
"contentHash": "XWmCmqyFmoItXKFsQSwQbEAsjDKcxlNf1l+/Ki42hcb6LjKL8m5Db69OTvz5vLonMSRntYO1XLqz0OP+n3vKnA==",
"dependencies": {
"Microsoft.OpenApi": "1.2.3"
}
},
"Swashbuckle.AspNetCore.SwaggerUI": {
"type": "CentralTransitive",
"requested": "[6.5.0, )",
"resolved": "6.5.0",
"contentHash": "OvbvxX+wL8skxTBttcBsVxdh73Fag4xwqEU2edh4JMn7Ws/xJHnY/JB1e9RoCb6XpDxUF3hD9A0Z1lEUx40Pfw=="
},
"System.Linq.Async": {
"type": "CentralTransitive",
"requested": "[6.0.1, )",
Expand Down
Loading

0 comments on commit 38ac94f

Please sign in to comment.