Skip to content

Commit b5d4e31

Browse files
authored
Merge pull request #207 from atc-net/hotfix/maintenance
Maintenance
2 parents c7b8933 + 6de22ae commit b5d4e31

File tree

54 files changed

+1273
-1663
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1273
-1663
lines changed

src/Atc.Rest.ApiGenerator.Framework.Minimal/ContentGenerators/ContentGeneratorServerEndpoints.cs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@ public string Generate()
3535
sb.Append(codeDocumentationTagsGenerator.GenerateTags(0, parameters.DocumentationTags));
3636
}
3737

38-
if (parameters.Authorization is not null)
39-
{
40-
sb.AppendLine(parameters.Authorization.UseAllowAnonymous
41-
? "[AllowAnonymous]"
42-
: "[Authorize]");
43-
}
44-
4538
sb.AppendLine(codeAttributeGenerator.Generate());
4639

4740
sb.AppendLine($"public sealed class {parameters.ApiGroupName}EndpointDefinition : IEndpointDefinition");

src/Atc.Rest.ApiGenerator.Framework.Minimal/ContentGenerators/ContentGeneratorServerProgram.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,8 @@ public string Generate()
7070
sb.AppendLine();
7171
sb.AppendLine(8, "app.UseEndpointDefinitions();");
7272
sb.AppendLine();
73+
sb.AppendLine(8, "app.MapGet(\"/\", () => TypedResults.Text(\"OK\", \"text/plain\")).ExcludeFromDescription();");
74+
sb.AppendLine();
7375
sb.AppendLine(8, "app.UseGlobalErrorHandler();");
7476
sb.AppendLine();
7577
sb.AppendLine(8, "// Enabling the status code pages middleware, will allow Problem Details to be used in some extra non-exception related framework scenarios,");

src/Atc.Rest.ApiGenerator.Framework.Minimal/ContentGenerators/ContentGeneratorServerServiceCollectionExtensions.cs

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -22,29 +22,29 @@ public string Generate()
2222
sb.AppendLine(8, "this IServiceCollection services)");
2323
sb.AppendLine(4, "{");
2424
sb.AppendLine(8, "services.AddEndpointsApiExplorer();");
25-
sb.AppendLine(8, "services.AddApiVersioning(");
26-
sb.AppendLine(16, "options =>");
27-
sb.AppendLine(16, "{");
28-
sb.AppendLine(20, "// Specify the default API Version");
29-
sb.AppendLine(20, "options.DefaultApiVersion = new ApiVersion(1, 0);");
25+
sb.AppendLine(8, "services");
26+
sb.AppendLine(12, ".AddApiVersioning(options =>");
27+
sb.AppendLine(12, "{");
28+
sb.AppendLine(16, "// Specify the default API Version");
29+
sb.AppendLine(16, "options.DefaultApiVersion = new ApiVersion(1, 0);");
3030
sb.AppendLine();
31-
sb.AppendLine(20, "// If the client hasn't specified the API version in the request, use the default API version number");
32-
sb.AppendLine(20, "options.AssumeDefaultVersionWhenUnspecified = true;");
31+
sb.AppendLine(16, "// If the client hasn't specified the API version in the request, use the default API version number");
32+
sb.AppendLine(16, "options.AssumeDefaultVersionWhenUnspecified = true;");
3333
sb.AppendLine();
34-
sb.AppendLine(20, "// reporting api versions will return the headers");
35-
sb.AppendLine(20, "// \"api-supported-versions\" and \"api-deprecated-versions\"");
36-
sb.AppendLine(20, "options.ReportApiVersions = true;");
34+
sb.AppendLine(16, "// reporting api versions will return the headers");
35+
sb.AppendLine(16, "// \"api-supported-versions\" and \"api-deprecated-versions\"");
36+
sb.AppendLine(16, "options.ReportApiVersions = true;");
3737
sb.AppendLine();
38-
sb.AppendLine(20, "//// DEFAULT Version reader is QueryStringApiVersionReader();");
39-
sb.AppendLine(20, "//// clients request the specific version using the x-api-version header");
40-
sb.AppendLine(20, "//// Supporting multiple versioning scheme");
41-
sb.AppendLine(20, "options.ApiVersionReader = ApiVersionReader.Combine(");
42-
sb.AppendLine(24, "new HeaderApiVersionReader(ApiVersionConstants.ApiVersionHeaderParameter),");
43-
sb.AppendLine(24, "new MediaTypeApiVersionReader(ApiVersionConstants.ApiVersionMediaTypeParameter),");
44-
sb.AppendLine(24, "new QueryStringApiVersionReader(ApiVersionConstants.ApiVersionQueryParameter),");
45-
sb.AppendLine(24, "new QueryStringApiVersionReader(ApiVersionConstants.ApiVersionQueryParameterShort),");
46-
sb.AppendLine(24, "new UrlSegmentApiVersionReader());");
47-
sb.AppendLine(16, "})");
38+
sb.AppendLine(16, "//// DEFAULT Version reader is QueryStringApiVersionReader();");
39+
sb.AppendLine(16, "//// clients request the specific version using the x-api-version header");
40+
sb.AppendLine(16, "//// Supporting multiple versioning scheme");
41+
sb.AppendLine(16, "options.ApiVersionReader = ApiVersionReader.Combine(");
42+
sb.AppendLine(20, "new HeaderApiVersionReader(ApiVersionConstants.ApiVersionHeaderParameter),");
43+
sb.AppendLine(20, "new MediaTypeApiVersionReader(ApiVersionConstants.ApiVersionMediaTypeParameter),");
44+
sb.AppendLine(20, "new QueryStringApiVersionReader(ApiVersionConstants.ApiVersionQueryParameter),");
45+
sb.AppendLine(20, "new QueryStringApiVersionReader(ApiVersionConstants.ApiVersionQueryParameterShort),");
46+
sb.AppendLine(20, "new UrlSegmentApiVersionReader());");
47+
sb.AppendLine(12, "})");
4848
sb.AppendLine(12, ".AddApiExplorer(options =>");
4949
sb.AppendLine(12, "{");
5050
sb.AppendLine(16, "// add the versioned api explorer, which also adds IApiVersionDescriptionProvider service");
@@ -60,7 +60,8 @@ public string Generate()
6060
sb.AppendLine(4, "public static void ConfigureSwagger(");
6161
sb.AppendLine(8, "this IServiceCollection services)");
6262
sb.AppendLine(4, "{");
63-
sb.AppendLine(8, "services.AddTransient<IConfigureOptions<SwaggerGenOptions>, ConfigureSwaggerOptions>();");
63+
sb.AppendLine(8, "services.ConfigureOptions<ConfigureSwaggerDocOptions>();");
64+
sb.AppendLine();
6465
sb.AppendLine(8, "services.AddSwaggerGen(options =>");
6566
sb.AppendLine(8, "{");
6667
sb.AppendLine(12, "options.OperationFilter<SwaggerDefaultValues>();");
Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
// ReSharper disable SwitchStatementMissingSomeEnumCasesNoDefault
22
namespace Atc.Rest.ApiGenerator.Framework.Minimal.ContentGenerators;
33

4-
public class ContentGeneratorServeWebApplicationExtensions : IContentGenerator
4+
public class ContentGeneratorServerWebApplicationExtensions : IContentGenerator
55
{
66
private readonly ContentGeneratorBaseParameters parameters;
77

8-
public ContentGeneratorServeWebApplicationExtensions(
8+
public ContentGeneratorServerWebApplicationExtensions(
99
ContentGeneratorBaseParameters parameters)
1010
{
1111
this.parameters = parameters;
@@ -21,7 +21,7 @@ public string Generate()
2121
sb.AppendLine();
2222
sb.AppendLine("public static class WebApplicationExtensions");
2323
sb.AppendLine("{");
24-
sb.AppendLine(4, "private static readonly string[] PatchHttpMethods = { \"patch\" };");
24+
sb.AppendLine(4, "private static readonly string[] PatchHttpMethods = [\"patch\"];");
2525
sb.AppendLine();
2626
sb.AppendLine(4, "public static RouteHandlerBuilder MapPatch(");
2727
sb.AppendLine(8, "this WebApplication app,");
@@ -39,6 +39,11 @@ public string Generate()
3939
sb.AppendLine(8, "this WebApplication app,");
4040
sb.AppendLine(8, "string applicationName)");
4141
sb.AppendLine(4, "{");
42+
sb.AppendLine(8, "if (!app.Environment.IsDevelopment())");
43+
sb.AppendLine(8, "{");
44+
sb.AppendLine(12, "return app;");
45+
sb.AppendLine(8, "}");
46+
sb.AppendLine();
4247
sb.AppendLine(8, "app.UseSwagger();");
4348
sb.AppendLine(8, "app.UseSwaggerUI(options =>");
4449
sb.AppendLine(8, "{");

src/Atc.Rest.ApiGenerator.Framework.Minimal/ProjectGenerator/ServerHostGenerator.cs

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ public void ScaffoldWebApplicationBuilderExtensions()
164164
public void ScaffoldWebApplicationExtensions(
165165
SwaggerThemeMode swaggerThemeMode)
166166
{
167-
var contentGenerator = new ContentGenerators.ContentGeneratorServeWebApplicationExtensions(
167+
var contentGenerator = new ContentGenerators.ContentGeneratorServerWebApplicationExtensions(
168168
new ContentGeneratorBaseParameters(Namespace: projectName))
169169
{
170170
SwaggerThemeMode = swaggerThemeMode,
@@ -181,29 +181,6 @@ public void ScaffoldWebApplicationExtensions(
181181
overrideIfExist: false);
182182
}
183183

184-
public void ScaffoldConfigureSwaggerOptions()
185-
{
186-
var fullNamespace = $"{projectName}";
187-
188-
var contentGeneratorServerSwaggerDocOptionsParameters = ContentGeneratorServerSwaggerDocOptionsParameterFactory
189-
.Create(
190-
fullNamespace,
191-
openApiDocument.ToSwaggerDocOptionsParameters());
192-
193-
var contentGenerator = new ContentGeneratorServeConfigureSwaggerOptions(
194-
contentGeneratorServerSwaggerDocOptionsParameters);
195-
196-
var content = contentGenerator.Generate();
197-
198-
var contentWriter = new ContentWriter(logger);
199-
contentWriter.Write(
200-
projectPath,
201-
projectPath.CombineFileInfo("Options", "ConfigureSwaggerOptions.cs"),
202-
ContentWriterArea.Src,
203-
content,
204-
overrideIfExist: false);
205-
}
206-
207184
public void ScaffoldProgramFile(
208185
SwaggerThemeMode swaggerThemeMode)
209186
{
@@ -251,7 +228,7 @@ public void GenerateConfigureSwaggerDocOptions()
251228
fullNamespace,
252229
openApiDocument.ToSwaggerDocOptionsParameters());
253230

254-
var contentGenerator = new ContentGeneratorServerSwaggerDocOptions(
231+
var contentGenerator = new ContentGeneratorServerConfigureSwaggerDocOptions(
255232
new GeneratedCodeHeaderGenerator(new GeneratedCodeGeneratorParameters(apiGeneratorVersion)),
256233
new GeneratedCodeAttributeGenerator(new GeneratedCodeGeneratorParameters(apiGeneratorVersion)),
257234
contentGeneratorServerSwaggerDocOptionsParameters);

src/Atc.Rest.ApiGenerator.Framework.Mvc/ProjectGenerator/ServerHostGenerator.cs

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -124,29 +124,6 @@ public void ScaffoldWebApplicationExtensions(
124124
SwaggerThemeMode swaggerThemeMode)
125125
=> throw new NotSupportedException($"{nameof(ScaffoldWebApplicationExtensions)} is not supported for MVC");
126126

127-
public void ScaffoldConfigureSwaggerOptions()
128-
{
129-
var fullNamespace = $"{projectName}";
130-
131-
var contentGeneratorServerSwaggerDocOptionsParameters = ContentGeneratorServerSwaggerDocOptionsParameterFactory
132-
.Create(
133-
fullNamespace,
134-
openApiDocument.ToSwaggerDocOptionsParameters());
135-
136-
var contentGenerator = new ContentGeneratorServeConfigureSwaggerOptions(
137-
contentGeneratorServerSwaggerDocOptionsParameters);
138-
139-
var content = contentGenerator.Generate();
140-
141-
var contentWriter = new ContentWriter(logger);
142-
contentWriter.Write(
143-
projectPath,
144-
projectPath.CombineFileInfo("Options", "ConfigureSwaggerOptions.cs"),
145-
ContentWriterArea.Src,
146-
content,
147-
overrideIfExist: false);
148-
}
149-
150127
public void ScaffoldProgramFile(
151128
SwaggerThemeMode swaggerThemeMode)
152129
{
@@ -204,7 +181,7 @@ public void GenerateConfigureSwaggerDocOptions()
204181
fullNamespace,
205182
openApiDocument.ToSwaggerDocOptionsParameters());
206183

207-
var contentGenerator = new ContentGeneratorServerSwaggerDocOptions(
184+
var contentGenerator = new ContentGeneratorServerConfigureSwaggerDocOptions(
208185
new GeneratedCodeHeaderGenerator(new GeneratedCodeGeneratorParameters(apiGeneratorVersion)),
209186
new GeneratedCodeAttributeGenerator(new GeneratedCodeGeneratorParameters(apiGeneratorVersion)),
210187
contentGeneratorServerSwaggerDocOptionsParameters);
Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,58 @@
11
namespace Atc.Rest.ApiGenerator.Framework.ContentGenerators.Server;
22

3-
public class ContentGeneratorServeConfigureSwaggerOptions : IContentGenerator
3+
public sealed class ContentGeneratorServerConfigureSwaggerDocOptions : IContentGenerator
44
{
5+
private readonly GeneratedCodeHeaderGenerator codeHeaderGenerator;
6+
private readonly GeneratedCodeAttributeGenerator codeAttributeGenerator;
57
private readonly ContentGeneratorServerSwaggerDocOptionsParameters parameters;
68

7-
public ContentGeneratorServeConfigureSwaggerOptions(
9+
public ContentGeneratorServerConfigureSwaggerDocOptions(
10+
GeneratedCodeHeaderGenerator codeHeaderGenerator,
11+
GeneratedCodeAttributeGenerator codeAttributeGenerator,
812
ContentGeneratorServerSwaggerDocOptionsParameters parameters)
913
{
14+
this.codeHeaderGenerator = codeHeaderGenerator;
15+
this.codeAttributeGenerator = codeAttributeGenerator;
1016
this.parameters = parameters;
1117
}
1218

1319
public string Generate()
1420
{
1521
var sb = new StringBuilder();
1622

23+
sb.Append(codeHeaderGenerator.Generate());
1724
sb.AppendLine($"namespace {parameters.Namespace}.Options;"); // TODO: Move to constant
1825
sb.AppendLine();
19-
sb.AppendLine("public class ConfigureSwaggerOptions : IConfigureOptions<SwaggerGenOptions>");
26+
sb.AppendLine(codeAttributeGenerator.Generate());
27+
sb.AppendLine("public class ConfigureSwaggerDocOptions : IConfigureOptions<SwaggerGenOptions>");
2028
sb.AppendLine("{");
2129
sb.AppendLine(4, "private readonly IApiVersionDescriptionProvider provider;");
2230
sb.AppendLine(4, "private readonly IWebHostEnvironment environment;");
2331
sb.AppendLine();
2432
sb.AppendLine(4, "/// <summary>");
25-
sb.AppendLine(4, "/// Initializes a new instance of the <see cref=\"ConfigureSwaggerOptions\"/> class.");
33+
sb.AppendLine(4, "/// Initializes a new instance of the <see cref=\"ConfigureSwaggerDocOptions\"/> class.");
2634
sb.AppendLine(4, "/// </summary>");
2735
sb.AppendLine(4, "/// <param name=\"provider\">The <see cref=\"IApiVersionDescriptionProvider\">provider</see> used to generate Swagger documents.</param>");
2836
sb.AppendLine(4, "/// <param name=\"environment\">The environment.</param>");
29-
sb.AppendLine(4, "public ConfigureSwaggerOptions(");
37+
sb.AppendLine(4, "public ConfigureSwaggerDocOptions(");
3038
sb.AppendLine(8, "IApiVersionDescriptionProvider provider,");
3139
sb.AppendLine(8, "IWebHostEnvironment environment)");
3240
sb.AppendLine(4, "{");
3341
sb.AppendLine(8, "this.provider = provider;");
3442
sb.AppendLine(8, "this.environment = environment;");
3543
sb.AppendLine(4, "}");
3644
sb.AppendLine();
37-
sb.AppendLine(4, "/// <inheritdoc />");
3845
sb.AppendLine(4, "public void Configure(");
3946
sb.AppendLine(8, "SwaggerGenOptions options)");
4047
sb.AppendLine(4, "{");
41-
sb.AppendLine(8, "// Add a swagger document for each discovered API version");
42-
sb.AppendLine(8, "// note: you might choose to skip or document deprecated API versions differently");
4348
sb.AppendLine(8, "foreach (var description in provider.ApiVersionDescriptions)");
4449
sb.AppendLine(8, "{");
4550
sb.AppendLine(12, "options.SwaggerDoc(description.GroupName, CreateInfoForApiVersion(description));");
4651
sb.AppendLine(8, "}");
52+
sb.AppendLine();
53+
sb.AppendLine(8, "options.IncludeXmlComments(Path.ChangeExtension(GetType().Assembly.Location, \"xml\"));");
4754
sb.AppendLine(4, "}");
55+
4856
sb.AppendLine();
4957
sb.AppendLine(4, "private OpenApiInfo CreateInfoForApiVersion(");
5058
sb.AppendLine(8, "ApiVersionDescription description)");

src/Atc.Rest.ApiGenerator.Framework/ContentGenerators/Server/ContentGeneratorServerSwaggerDocOptions.cs

Lines changed: 0 additions & 46 deletions
This file was deleted.

src/Atc.Rest.ApiGenerator.Framework/ProjectGenerator/IServerHostGenerator.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@ void ScaffoldWebApplicationExtensions(
2828

2929
void GenerateConfigureSwaggerDocOptions();
3030

31-
void ScaffoldConfigureSwaggerOptions();
32-
3331
void ScaffoldProgramFile(
3432
SwaggerThemeMode swaggerThemeMode);
3533

src/Atc.Rest.ApiGenerator.Framework/Providers/NugetPackageReferenceProvider.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class NugetPackageReferenceProvider(
2828
{ "Microsoft.NETCore.Platforms", "7.0.4" },
2929
{ "Microsoft.NET.Test.Sdk", "17.10.0" },
3030
{ "NSubstitute", "5.1.0" },
31-
{ "Swashbuckle.AspNetCore", "6.6.2" },
31+
{ "Swashbuckle.AspNetCore", "6.7.0" },
3232
{ "xunit", "2.8.1" },
3333
{ "xunit.runner.visualstudio", "2.8.1" },
3434
};

0 commit comments

Comments
 (0)