Skip to content

Commit

Permalink
Add SchemaGeneratorFactory property to OpenApiDocumentGeneratorSettin…
Browse files Browse the repository at this point in the history
…gs, #4524
  • Loading branch information
i-moonlight committed Dec 19, 2023
1 parent 53907f1 commit b84c169
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 4 deletions.
3 changes: 2 additions & 1 deletion src/NSwag.Generation/OpenApiDocumentGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ public class OpenApiDocumentGenerator
/// <param name="schemaResolver">The schema resolver.</param>
public OpenApiDocumentGenerator(OpenApiDocumentGeneratorSettings settings, JsonSchemaResolver schemaResolver)
{
SchemaGenerator = new OpenApiSchemaGenerator(settings);
SchemaGenerator = settings.SchemaGeneratorFactory();

_schemaResolver = schemaResolver;
_settings = settings;
}
Expand Down
4 changes: 4 additions & 0 deletions src/NSwag.Generation/OpenApiDocumentGeneratorSettings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,13 @@ public class OpenApiDocumentGeneratorSettings
/// <summary>Initializes a new instance of the <see cref="OpenApiDocumentGeneratorSettings"/> class.</summary>
public OpenApiDocumentGeneratorSettings()
{
SchemaGeneratorFactory = () => new OpenApiSchemaGenerator(this);
DefaultResponseReferenceTypeNullHandling = ReferenceTypeNullHandling.NotNull;
}

/// <summary>Gets or sets the JSON Schema generator factory (default: new instance of <see cref="OpenApiSchemaGenerator"/>.</summary>
public Func<OpenApiSchemaGenerator> SchemaGeneratorFactory { get; set; }

/// <summary></summary>
public JsonSchemaGeneratorSettings SchemaSettings { get; set; } = new SystemTextJsonSchemaGeneratorSettings
{
Expand Down
7 changes: 4 additions & 3 deletions src/NSwag.Generation/OpenApiSchemaGenerator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,13 @@ public class OpenApiSchemaGenerator : JsonSchemaGenerator

/// <summary>Initializes a new instance of the <see cref="OpenApiSchemaGenerator" /> class.</summary>
/// <param name="settings">The settings.</param>
public OpenApiSchemaGenerator(OpenApiDocumentGeneratorSettings settings) : base(settings.SchemaSettings)
public OpenApiSchemaGenerator(OpenApiDocumentGeneratorSettings settings)
: base(settings.SchemaSettings)
{
}

/// <summary>Generates the properties for the given type and schema.</summary>
/// <param name="typeDescription">The type desription.</param>
/// <param name="typeDescription">The type description.</param>
/// <param name="schema">The properties</param>
/// <param name="schemaResolver">The schema resolver.</param>
/// <returns></returns>
Expand All @@ -51,7 +52,7 @@ protected override void GenerateObject(JsonSchema schema, JsonTypeDescription ty
}
}

/// <summary>Generetes a schema directly or referenced for the requested schema type; also adds nullability if required.</summary>
/// <summary>Generates a schema directly or referenced for the requested schema type; also adds nullability if required.</summary>
/// <typeparam name="TSchemaType">The resulted schema type which may reference the actual schema.</typeparam>
/// <param name="contextualType">The type of the schema to generate.</param>
/// <param name="isNullable">Specifies whether the property, parameter or requested schema type is nullable.</param>
Expand Down

0 comments on commit b84c169

Please sign in to comment.