Skip to content

Commit cc1439e

Browse files
committed
Use JsonNode in place of OpenApiAny for Enums and Examples
1 parent 2f29a30 commit cc1439e

File tree

64 files changed

+218
-207
lines changed

Some content is hidden

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

64 files changed

+218
-207
lines changed

src/Microsoft.OpenApi/Any/OpenApiAny.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public OpenApiAny(JsonNode jsonNode)
3535
/// <param name="specVersion"></param>
3636
public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
3737
{
38-
writer.WriteAny(new OpenApiAny(Node));
38+
writer.WriteAny(Node);
3939
}
4040
}
4141
}

src/Microsoft.OpenApi/Helpers/JsonNodeCloneHelper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,16 @@ internal static class JsonNodeCloneHelper
1515
ReferenceHandler = ReferenceHandler.IgnoreCycles
1616
};
1717

18-
internal static OpenApiAny Clone(OpenApiAny value)
18+
internal static JsonNode Clone(JsonNode value)
1919
{
20-
var jsonString = Serialize(value?.Node);
20+
var jsonString = Serialize(value);
2121
if (string.IsNullOrEmpty(jsonString))
2222
{
2323
return null;
2424
}
2525

2626
var result = JsonSerializer.Deserialize<JsonNode>(jsonString, options);
27-
return new OpenApiAny(result);
27+
return result;
2828
}
2929

3030
private static string Serialize(object obj)

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiDeprecationExtension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
7777
/// <param name="source">The source object.</param>
7878
/// <returns>The <see cref="OpenApiDeprecationExtension"/>.</returns>
7979
/// <exception cref="ArgumentOutOfRangeException">When the source element is not an object</exception>
80-
public static OpenApiDeprecationExtension Parse(OpenApiAny source)
80+
public static OpenApiDeprecationExtension Parse(JsonNode source)
8181
{
82-
if (source.Node is not JsonObject rawObject) return null;
82+
if (source is not JsonObject rawObject) return null;
8383
var extension = new OpenApiDeprecationExtension();
8484
if (rawObject.TryGetPropertyValue(nameof(RemovalDate).ToFirstCharacterLowerCase(), out var removalDate) && removalDate is JsonNode removalDateValue)
8585
extension.RemovalDate = removalDateValue.GetValue<DateTimeOffset>();

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiEnumFlagsExtension.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// ------------------------------------------------------------
1+
// ------------------------------------------------------------
22
// Copyright (c) Microsoft Corporation. All rights reserved.
33
// Licensed under the MIT License (MIT). See LICENSE in the repo root for license information.
44
// ------------------------------------------------------------
@@ -44,9 +44,9 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
4444
/// <param name="source">The source element to parse.</param>
4545
/// <returns>The <see cref="OpenApiEnumFlagsExtension"/>.</returns>
4646
/// <exception cref="ArgumentOutOfRangeException">When the source element is not an object</exception>
47-
public static OpenApiEnumFlagsExtension Parse(OpenApiAny source)
47+
public static OpenApiEnumFlagsExtension Parse(JsonNode source)
4848
{
49-
if (source.Node is not JsonObject rawObject) throw new ArgumentOutOfRangeException(nameof(source));
49+
if (source is not JsonObject rawObject) throw new ArgumentOutOfRangeException(nameof(source));
5050
var extension = new OpenApiEnumFlagsExtension();
5151
if (rawObject.TryGetPropertyValue(nameof(IsFlags).ToFirstCharacterLowerCase(), out var flagsValue) && flagsValue is JsonNode isFlags)
5252
{

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiEnumValuesDescriptionExtension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,9 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
6363
/// <param name="source">The source element to parse.</param>
6464
/// <returns>The <see cref="OpenApiEnumValuesDescriptionExtension"/>.</returns>
6565
/// <exception cref="ArgumentOutOfRangeException">When the source element is not an object</exception>
66-
public static OpenApiEnumValuesDescriptionExtension Parse(OpenApiAny source)
66+
public static OpenApiEnumValuesDescriptionExtension Parse(JsonNode source)
6767
{
68-
if (source.Node is not JsonObject rawObject) return null;
68+
if (source is not JsonObject rawObject) return null;
6969
var extension = new OpenApiEnumValuesDescriptionExtension();
7070
if (rawObject.TryGetPropertyValue("values", out var values) && values is JsonArray valuesArray)
7171
{

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiPagingExtension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
7272
/// <param name="source">The source element to parse.</param>
7373
/// <returns>The <see cref="OpenApiPagingExtension"/>.</returns>
7474
/// <exception cref="ArgumentOutOfRangeException">When the source element is not an object</exception>
75-
public static OpenApiPagingExtension Parse(OpenApiAny source)
75+
public static OpenApiPagingExtension Parse(JsonNode source)
7676
{
77-
if (source.Node is not JsonObject rawObject) return null;
77+
if (source is not JsonObject rawObject) return null;
7878
var extension = new OpenApiPagingExtension();
7979
if (rawObject.TryGetPropertyValue(nameof(NextLinkName).ToFirstCharacterLowerCase(), out var nextLinkName) && nextLinkName is JsonNode nextLinkNameStr)
8080
{

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiPrimaryErrorMessageExtension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
3838
/// </summary>
3939
/// <param name="source">The source object.</param>
4040
/// <returns>The <see cref="OpenApiPrimaryErrorMessageExtension"/>.</returns>
41-
public static OpenApiPrimaryErrorMessageExtension Parse(OpenApiAny source)
41+
public static OpenApiPrimaryErrorMessageExtension Parse(JsonNode source)
4242
{
43-
if (source.Node is not JsonNode rawObject) return null;
43+
if (source is not JsonNode rawObject) return null;
4444
return new()
4545
{
4646
IsPrimaryErrorMessage = rawObject.GetValue<bool>()

src/Microsoft.OpenApi/MicrosoftExtensions/OpenApiReservedParameterExtension.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ public bool? IsReserved
4040
/// <param name="source">The source object.</param>
4141
/// <returns>The <see cref="OpenApiReservedParameterExtension"/>.</returns>
4242
/// <returns></returns>
43-
public static OpenApiReservedParameterExtension Parse(OpenApiAny source)
43+
public static OpenApiReservedParameterExtension Parse(JsonNode source)
4444
{
45-
if (source.Node is not JsonNode rawBoolean) return null;
45+
if (source is not JsonNode rawBoolean) return null;
4646
return new()
4747
{
4848
IsReserved = rawBoolean.GetValue<bool>()

src/Microsoft.OpenApi/Models/OpenApiExample.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Text.Json.Nodes;
67
using Microsoft.OpenApi.Any;
78
using Microsoft.OpenApi.Helpers;
89
using Microsoft.OpenApi.Interfaces;
@@ -31,7 +32,7 @@ public class OpenApiExample : IOpenApiReferenceable, IOpenApiExtensible
3132
/// exclusive. To represent examples of media types that cannot naturally represented
3233
/// in JSON or YAML, use a string value to contain the example, escaping where necessary.
3334
/// </summary>
34-
public virtual OpenApiAny Value { get; set; }
35+
public virtual JsonNode Value { get; set; }
3536

3637
/// <summary>
3738
/// A URL that points to the literal example.

src/Microsoft.OpenApi/Models/OpenApiHeader.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
using System;
55
using System.Collections.Generic;
6+
using System.Text.Json.Nodes;
67
using Microsoft.OpenApi.Any;
78
using Microsoft.OpenApi.Extensions;
89
using Microsoft.OpenApi.Helpers;
@@ -77,7 +78,7 @@ public virtual OpenApiSchema Schema
7778
/// <summary>
7879
/// Example of the media type.
7980
/// </summary>
80-
public virtual OpenApiAny Example { get; set; }
81+
public virtual JsonNode Example { get; set; }
8182

8283
/// <summary>
8384
/// Examples of the media type.

0 commit comments

Comments
 (0)