Is your feature request related to a problem? Please describe.
Default System.Text.Json Serialization of OpenApiJsonSchema is verbose (complete) and unsatisfying.
Describe the solution you'd like
A simple way to fix it, probably via a JsonConverter, either by default or to configure on AddMVC json options.
Describe alternatives you've considered
Otherwise, OpenApiSchema could support direct serialization to a JsonWriter:
Additional context
Turns out I did it in my projects, and I also just really wanted to know if this was appropriate, or I missed something available
internalclassSchemaConverter:System.Text.Json.Serialization.JsonConverter<OpenApiSchema>{privatestaticreadonlyConcurrentDictionary<int,JsonSerializerOptions>_jsonSerializerCache=new();publicoverrideOpenApiSchemaRead(refUtf8JsonReaderreader,TypetypeToConvert,JsonSerializerOptionsoptions){varcorrectedOptions=_jsonSerializerCache.GetOrAdd(options.GetHashCode(), _ =>{varoptionsCopy=newJsonSerializerOptions(options);optionsCopy.Converters.Remove(options.Converters.First(c =>cisSchemaConverter));returnoptionsCopy;});returnJsonSerializer.Deserialize<OpenApiSchema>(refreader,correctedOptions)!;}publicoverridevoidWrite(Utf8JsonWriterwriter,OpenApiSchemavalue,JsonSerializerOptionsoptions){usingvarmemoryStream=newMemoryStream();using(vartextWriter=newStreamWriter(memoryStream,leaveOpen:true)){value.SerializeAsV31(newOpenApiJsonWriter(textWriter));textWriter.Flush();}memoryStream.Position=0;writer.WriteRawValue(memoryStream.ToArray());}}
Is your feature request related to a problem? Please describe.
Default System.Text.Json Serialization of OpenApiJsonSchema is verbose (complete) and unsatisfying.
Describe the solution you'd like
A simple way to fix it, probably via a JsonConverter, either by default or to configure on AddMVC json options.
Describe alternatives you've considered
Otherwise, OpenApiSchema could support direct serialization to a JsonWriter:
Additional context
Turns out I did it in my projects, and I also just really wanted to know if this was appropriate, or I missed something available