diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java index f926fea2550a..c7efbcc63cd4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/CSharpClientCodegen.java @@ -1152,6 +1152,10 @@ public void addGenericHostSupportingFiles(final String clientPackageDir, final S String extensionsFolder = sourceFolder + File.separator + packageName + File.separator + "Extensions"; supportingFiles.add(new SupportingFile("IHttpClientBuilderExtensions.mustache", extensionsFolder, "IHttpClientBuilderExtensions.cs")); supportingFiles.add(new SupportingFile("IHostBuilderExtensions.mustache", extensionsFolder, "IHostBuilderExtensions.cs")); + // IHostApplicationBuilder is only available on .NET 8 or later + if (additionalProperties.containsKey(NET_80_OR_LATER)) { + supportingFiles.add(new SupportingFile("IHostApplicationBuilderExtensions.mustache", extensionsFolder, "IHostApplicationBuilderExtensions.cs")); + } supportingFiles.add(new SupportingFile("IServiceCollectionExtensions.mustache", extensionsFolder, "IServiceCollectionExtensions.cs")); String apiTestFolder = testFolder + File.separator + testPackageName() + File.separator + apiPackage(); diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IHostApplicationBuilderExtensions.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IHostApplicationBuilderExtensions.mustache new file mode 100644 index 000000000000..7ba4f1f07456 --- /dev/null +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/IHostApplicationBuilderExtensions.mustache @@ -0,0 +1,49 @@ +{{>partial_header}} +{{#nrt}} +#nullable enable + +{{/nrt}} +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using {{packageName}}.{{clientPackage}}; + +namespace {{packageName}}.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + {{>visibility}} static class IHostApplicationBuilderExtensions + { + {{^hasAuthMethods}} + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder Configure{{apiName}}(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.Add{{apiName}}(builder.Services, config); + + return builder; + } + + {{/hasAuthMethods}} + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder Configure{{apiName}}(this IHostApplicationBuilder builder, Action{{nrt?}} options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.Add{{apiName}}(builder.Services, config); + + return builder; + } + } +} diff --git a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/README.client.mustache b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/README.client.mustache index 3973a5be951d..e057ef28b758 100644 --- a/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/README.client.mustache +++ b/modules/openapi-generator/src/main/resources/csharp/libraries/generichost/README.client.mustache @@ -45,7 +45,7 @@ using Microsoft.Extensions.DependencyInjection; using {{packageName}}.Api; using {{packageName}}.Client; using {{packageName}}.Model; -using Org.OpenAPITools.Extensions; +using {{packageName}}.Extensions; namespace YourProject { @@ -53,7 +53,46 @@ namespace YourProject { public static async Task Main(string[] args) { + {{#net80OrLater}} + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.Configure{{apiName}}(options => + { + {{#authMethods}} + {{#-first}} + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + {{/-first}} + {{/authMethods}} + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.Add{{apiName}}HttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); + {{/net80OrLater}} + {{^net80OrLater}} var host = CreateHostBuilder(args).Build(); + {{/net80OrLater}} {{#apiInfo}} {{#apis}} {{#-first}} @@ -72,6 +111,7 @@ namespace YourProject {{/apis}} {{/apiInfo}} } + {{^net80OrLater}} public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .Configure{{apiName}}((context, options) => @@ -106,6 +146,7 @@ namespace YourProject } ); }); + {{/net80OrLater}} } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/.openapi-generator/FILES index add1b2cdf6dc..6e52e20c7164 100644 --- a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/.openapi-generator/FILES @@ -44,6 +44,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..e28ea0be8aec --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/README.md index 3714e06afbaa..2c52e8a21a26 100644 --- a/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/AnnotatedEnum/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IListApiResponse apiResponse = await api.ListAsync("todo"); string? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/.openapi-generator/FILES index e496483f4842..02ff0bc58f44 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/.openapi-generator/FILES @@ -31,6 +31,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..b468b240b236 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OpenAPI + * + * OpenAPI + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/README.md index 9d69b6d18a55..291a9c13cf76 100644 --- a/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/ComposedEnum/src/Org.OpenAPITools/README.md @@ -53,30 +53,30 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/HelloWorld/.openapi-generator/FILES index 7ef3eb1629a8..04c53eb9aa76 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/.openapi-generator/FILES @@ -31,6 +31,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d4b56e366eb6 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Minimal reproduction for csharp webhook bug + * + * This is an example API to reproduce a bug with webhooks in csharp codegen + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/README.md index ce14d1391776..e4c4b3d6056a 100644 --- a/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/HelloWorld/src/Org.OpenAPITools/README.md @@ -53,30 +53,30 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/.openapi-generator/FILES index 385311897f95..fa57b5f156e4 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/.openapi-generator/FILES @@ -34,6 +34,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..7cda45793fe4 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/README.md index ae0c36a3614b..aaa425a3a05e 100644 --- a/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/InlineEnumAnyOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IIconsApiResponse apiResponse = await api.IconsAsync("todo"); IconsDefaultResponse? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/NullTypes/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/NullTypes/.openapi-generator/FILES index eaa9a1f15622..4632d596f8fb 100644 --- a/samples/client/petstore/csharp/generichost/latest/NullTypes/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/NullTypes/.openapi-generator/FILES @@ -36,6 +36,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..eb82ab72fe63 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OAS 3.1 Null Type Test + * + * Tests OAS 3.1 null type handling for C# codegen. In OAS 3.1, `nullable: true` was deprecated in favour of adding `null` to the list of allowed types. The C# generator must convert any occurrence of the bare `null` type to a nullable `Object`, and must strip `null` out of oneOf / anyOf composed schemas while marking the parent model as nullable. + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/README.md index c198dfe5aefe..8495775f21b0 100644 --- a/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/NullTypes/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IGetWidgetApiResponse apiResponse = await api.GetWidgetAsync("todo"); Widget? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/OneOfList/.openapi-generator/FILES index 62b5d1840b64..eec6b5ddba04 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/.openapi-generator/FILES @@ -32,6 +32,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..93ce080aafab --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Oneof array test + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/README.md index 8345d580ce2c..ee16c44a3303 100644 --- a/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/OneOfList/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IOneOfArrayApiResponse apiResponse = await api.OneOfArrayAsync("todo"); object? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/Tags/.openapi-generator/FILES index dcf591f477dc..07b15f75bd74 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/Tags/.openapi-generator/FILES @@ -35,6 +35,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d0bd609f16f8 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,41 @@ +/* + * Files.com API + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Contact: support@files.com + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/README.md index 5a3289cb7018..7ff40d5e1dc6 100644 --- a/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/Tags/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IGetApiKeysIdApiResponse apiResponse = await api.GetApiKeysIdAsync("todo"); object? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/latest/UseDateTimeOffset/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/AllOf/.openapi-generator/FILES index e32fc0acf018..a57606eb2ef2 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..e28ea0be8aec --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/README.md index 227d28c7f58d..3dfdb773bf71 100644 --- a/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/AllOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IListApiResponse apiResponse = await api.ListAsync("todo"); Person? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/AnyOf/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/AnyOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/AnyOfNoCompare/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/FormModels/.openapi-generator/FILES index b3b6081185ca..1418128b560d 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/.openapi-generator/FILES @@ -177,6 +177,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/FormModels/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/NullReferenceTypes/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/OneOf/.openapi-generator/FILES index de14bc5e5e2a..08dc739215b6 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/.openapi-generator/FILES @@ -34,6 +34,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/README.md index 97485dff5637..c6c17957f42e 100644 --- a/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/OneOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/Petstore/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/Petstore/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/SourceGeneration/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/.openapi-generator/FILES index 014d2e094f31..e1b104ed0d79 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/.openapi-generator/FILES @@ -29,6 +29,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..a436d643049d --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/README.md index c704b62623e9..5cb3a04c246e 100644 --- a/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net10/UseDateTimeForDate/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); INowGetApiResponse apiResponse = await api.NowGetAsync("todo"); NowGet200Response? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/AllOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/AllOf/.openapi-generator/FILES index e32fc0acf018..a57606eb2ef2 100644 --- a/samples/client/petstore/csharp/generichost/net8/AllOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/AllOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..e28ea0be8aec --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/README.md index 227d28c7f58d..3dfdb773bf71 100644 --- a/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/AllOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IListApiResponse apiResponse = await api.ListAsync("todo"); Person? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/AnyOf/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net8/AnyOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/AnyOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/AnyOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/AnyOfNoCompare/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/FormModels/.openapi-generator/FILES index b3b6081185ca..1418128b560d 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/.openapi-generator/FILES @@ -177,6 +177,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/FormModels/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/NullReferenceTypes/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/OneOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/OneOf/.openapi-generator/FILES index de14bc5e5e2a..08dc739215b6 100644 --- a/samples/client/petstore/csharp/generichost/net8/OneOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/OneOf/.openapi-generator/FILES @@ -34,6 +34,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/README.md index 97485dff5637..c6c17957f42e 100644 --- a/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/OneOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/Petstore/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/Petstore/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/SourceGeneration/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/.openapi-generator/FILES index 014d2e094f31..e1b104ed0d79 100644 --- a/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/.openapi-generator/FILES @@ -29,6 +29,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..a436d643049d --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/README.md index c704b62623e9..5cb3a04c246e 100644 --- a/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net8/UseDateTimeForDate/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); INowGetApiResponse apiResponse = await api.NowGetAsync("todo"); NowGet200Response? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/AllOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/AllOf/.openapi-generator/FILES index e32fc0acf018..a57606eb2ef2 100644 --- a/samples/client/petstore/csharp/generichost/net9/AllOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/AllOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..e28ea0be8aec --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * Example + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/README.md index 227d28c7f58d..3dfdb773bf71 100644 --- a/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/AllOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IListApiResponse apiResponse = await api.ListAsync("todo"); Person? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/AnyOf/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net9/AnyOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/AnyOf/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/AnyOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/.openapi-generator/FILES index 470d4870ee92..19fc0c63f4fa 100644 --- a/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/.openapi-generator/FILES @@ -33,6 +33,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/README.md index d126fd55774f..a93fa134f229 100644 --- a/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/AnyOfNoCompare/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/FormModels/.openapi-generator/FILES index b3b6081185ca..1418128b560d 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/.openapi-generator/FILES @@ -177,6 +177,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/FormModels/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/NullReferenceTypes/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/OneOf/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/OneOf/.openapi-generator/FILES index de14bc5e5e2a..08dc739215b6 100644 --- a/samples/client/petstore/csharp/generichost/net9/OneOf/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/OneOf/.openapi-generator/FILES @@ -34,6 +34,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..fc9c1a726182 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * fruity + * + * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator) + * + * The version of the OpenAPI document: 0.0.1 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/README.md index 97485dff5637..c6c17957f42e 100644 --- a/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/OneOf/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); IRootGetApiResponse apiResponse = await api.RootGetAsync("todo"); Fruit? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/Petstore/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..d11f51131857 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,38 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/README.md index 6d718337cadb..02d8cea3a538 100644 --- a/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/Petstore/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/.openapi-generator/FILES index 0698a2042def..d85537f7fad8 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/.openapi-generator/FILES @@ -152,6 +152,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..14f35a6e2c06 --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,40 @@ +/* + * OpenAPI Petstore + * + * This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\ + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/README.md index 121dfdc3ee2e..1f3d613cb6cf 100644 --- a/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/SourceGeneration/src/Org.OpenAPITools/README.md @@ -53,41 +53,41 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + // The type of token here depends on the api security specifications + // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. + BearerToken token = new(""); + options.AddTokens(token); + + // optionally choose the method the tokens will be provided with, default is RateLimitProvider + options.UseProvider, BearerToken>(); + + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); ICall123TestSpecialTagsApiResponse apiResponse = await api.Call123TestSpecialTagsAsync("todo"); ModelClient? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - // The type of token here depends on the api security specifications - // Available token types are ApiKeyToken, BasicToken, BearerToken, HttpSigningToken, and OAuthToken. - BearerToken token = new(""); - options.AddTokens(token); - - // optionally choose the method the tokens will be provided with, default is RateLimitProvider - options.UseProvider, BearerToken>(); - - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ``` diff --git a/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/.openapi-generator/FILES b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/.openapi-generator/FILES index 014d2e094f31..e1b104ed0d79 100644 --- a/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/.openapi-generator/FILES +++ b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/.openapi-generator/FILES @@ -29,6 +29,7 @@ src/Org.OpenAPITools/Client/RateLimitProvider`1.cs src/Org.OpenAPITools/Client/TokenBase.cs src/Org.OpenAPITools/Client/TokenContainer`1.cs src/Org.OpenAPITools/Client/TokenProvider`1.cs +src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHostBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IHttpClientBuilderExtensions.cs src/Org.OpenAPITools/Extensions/IServiceCollectionExtensions.cs diff --git a/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs new file mode 100644 index 000000000000..a436d643049d --- /dev/null +++ b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/Extensions/IHostApplicationBuilderExtensions.cs @@ -0,0 +1,53 @@ +/* + * OpenAPI Dates + * + * Thic spec contains endpoints with dates in different formats + * + * The version of the OpenAPI document: 1.0.0 + * Generated by: https://github.com/openapitools/openapi-generator.git + */ + +#nullable enable + +using System; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Hosting; +using Org.OpenAPITools.Client; + +namespace Org.OpenAPITools.Extensions +{ + /// + /// Extension methods for IHostApplicationBuilder + /// + public static class IHostApplicationBuilderExtensions + { + /// + /// Add the api to your application builder. + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder) + { + HostConfiguration config = new(builder.Services); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + + /// + /// Add the api to your application builder. + /// + /// + /// + public static IHostApplicationBuilder ConfigureApi(this IHostApplicationBuilder builder, Action? options = null) + { + HostConfiguration config = new(builder.Services); + + options?.Invoke(config); + + IServiceCollectionExtensions.AddApi(builder.Services, config); + + return builder; + } + } +} diff --git a/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/README.md b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/README.md index c704b62623e9..5cb3a04c246e 100644 --- a/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/README.md +++ b/samples/client/petstore/csharp/generichost/net9/UseDateTimeForDate/src/Org.OpenAPITools/README.md @@ -53,33 +53,33 @@ namespace YourProject { public static async Task Main(string[] args) { - var host = CreateHostBuilder(args).Build(); + HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); + + builder.ConfigureApi(options => + { + options.ConfigureJsonOptions(jsonOptions => + { + // your custom converters if any + }); + + options.AddApiHttpClients(client => + { + // client configuration + }, clientBuilder => + { + clientBuilder + .AddRetryPolicy(2) + .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) + .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); + // add whatever middleware you prefer + }); + }); + + IHost host = builder.Build(); var api = host.Services.GetRequiredService(); INowGetApiResponse apiResponse = await api.NowGetAsync("todo"); NowGet200Response? model = apiResponse.Ok(); } - - public static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) - .ConfigureApi((context, options) => - { - options.ConfigureJsonOptions((jsonOptions) => - { - // your custom converters if any - }); - - options.AddApiHttpClients(client => - { - // client configuration - }, builder => - { - builder - .AddRetryPolicy(2) - .AddTimeoutPolicy(TimeSpan.FromSeconds(5)) - .AddCircuitBreakerPolicy(10, TimeSpan.FromSeconds(30)); - // add whatever middleware you prefer - } - ); - }); } } ```