Skip to content

Commit 26561e3

Browse files
committed
Merge remote-tracking branch 'origin/master' into dm/validation
2 parents fc4c334 + 6af46af commit 26561e3

38 files changed

+345
-103
lines changed

src/Microsoft.OpenApi.Readers/Microsoft.OpenApi.Readers.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<Company>Microsoft</Company>
1111
<Title>Microsoft.OpenApi.Readers</Title>
1212
<PackageId>Microsoft.OpenApi.Readers</PackageId>
13-
<Version>1.0.0-beta008</Version>
13+
<Version>1.0.0-beta009</Version>
1414
<Description>OpenAPI.NET Readers for JSON and YAML documents</Description>
1515
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
1616
<PackageTags>OpenAPI .NET</PackageTags>

src/Microsoft.OpenApi.Readers/OpenApiStreamReader.cs

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,22 @@ public OpenApiDocument Read(Stream input, out OpenApiDiagnostic diagnostic)
6565

6666
var inputVersion = GetVersion(rootNode);
6767

68-
switch (inputVersion)
68+
if ( inputVersion == "2.0")
6969
{
70-
case "2.0":
71-
context.ReferenceService = new OpenApiV2ReferenceService(rootNode);
72-
return OpenApiV2Deserializer.LoadOpenApi(rootNode);
73-
74-
default:
75-
context.ReferenceService = new OpenApiV3ReferenceService(rootNode);
76-
return OpenApiV3Deserializer.LoadOpenApi(rootNode);
70+
context.ReferenceService = new OpenApiV2ReferenceService(rootNode);
71+
return OpenApiV2Deserializer.LoadOpenApi(rootNode);
72+
}
73+
else if (inputVersion.StartsWith("3.0."))
74+
{
75+
context.ReferenceService = new OpenApiV3ReferenceService(rootNode);
76+
return OpenApiV3Deserializer.LoadOpenApi(rootNode);
77+
}
78+
else
79+
{
80+
// If version number is not recognizable,
81+
// our best effort will try to deserialize the document to V3.
82+
context.ReferenceService = new OpenApiV3ReferenceService(rootNode);
83+
return OpenApiV3Deserializer.LoadOpenApi(rootNode);
7784
}
7885
}
7986
}

src/Microsoft.OpenApi.Readers/ReferenceServices/OpenApiV2ReferenceService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ public bool TryLoadReference(OpenApiReference reference, out IOpenApiReferenceab
9797
break;
9898

9999
case ReferenceType.Parameter:
100+
// TODO: Handle referencing to a "body" parameter in V2
100101
referencedObject = OpenApiV2Deserializer.LoadParameter(node);
101102
break;
102103

src/Microsoft.OpenApi.Readers/V2/OpenApiParameterDeserializer.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,13 +202,14 @@ private static void ProcessIn(OpenApiParameter o, ParseNode n)
202202
case "body":
203203
n.Context.SetTempStorage("bodyParameter", o);
204204
break;
205-
case "form":
205+
case "formData":
206206
var formParameters = n.Context.GetFromTempStorage<List<OpenApiParameter>>("formParameters");
207207
if (formParameters == null)
208208
{
209209
formParameters = new List<OpenApiParameter>();
210210
n.Context.SetTempStorage("formParameters", formParameters);
211211
}
212+
212213
formParameters.Add(o);
213214
break;
214215
default:
@@ -226,11 +227,12 @@ public static OpenApiParameter LoadParameter(ParseNode node)
226227
var mapNode = node.CheckMapNode("parameter");
227228

228229
var pointer = mapNode.GetReferencePointer();
230+
229231
if (pointer != null)
230232
{
231233
return mapNode.GetReferencedObject<OpenApiParameter>(ReferenceType.Parameter, pointer);
232234
}
233-
235+
234236
var parameter = new OpenApiParameter();
235237

236238
ParseMap(mapNode, parameter, _parameterFixedFields, _parameterPatternFields);

src/Microsoft.OpenApi.Workbench/MainModel.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ private string WriteContents(OpenApiDocument document)
200200
var outputStream = new MemoryStream();
201201
document.Serialize(
202202
outputStream,
203-
IsV3 ? OpenApiSpecVersion.OpenApi3_0_0 : OpenApiSpecVersion.OpenApi2_0,
203+
IsV3 ? OpenApiSpecVersion.OpenApi3_0 : OpenApiSpecVersion.OpenApi2_0,
204204
_format == "Yaml" ? OpenApiFormat.Yaml : OpenApiFormat.Json);
205205

206206
outputStream.Position = 0;

src/Microsoft.OpenApi/Extensions/OpenApiSerializableExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public static void Serialize<T>(this T element, IOpenApiWriter writer, OpenApiSp
9999

100100
switch (specVersion)
101101
{
102-
case OpenApiSpecVersion.OpenApi3_0_0:
102+
case OpenApiSpecVersion.OpenApi3_0:
103103
element.SerializeAsV3(writer);
104104
break;
105105

src/Microsoft.OpenApi/Microsoft.OpenApi.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<Company>Microsoft</Company>
1111
<Title>Microsoft.OpenApi</Title>
1212
<PackageId>Microsoft.OpenApi</PackageId>
13-
<Version>1.0.0-beta008</Version>
13+
<Version>1.0.0-beta009</Version>
1414
<Description>.NET models with JSON and YAML writers for OpenAPI specification</Description>
1515
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
1616
<PackageTags>OpenAPI .NET</PackageTags>

src/Microsoft.OpenApi/Models/OpenApiDocument.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
namespace Microsoft.OpenApi.Models
1212
{
1313
/// <summary>
14-
/// Describes an Open API Document. See: https://swagger.io/specification
14+
/// Describes an OpenAPI object (OpenAPI document). See: https://swagger.io/specification
1515
/// </summary>
1616
public class OpenApiDocument : IOpenApiSerializable, IOpenApiExtensible
1717
{
@@ -57,7 +57,7 @@ public class OpenApiDocument : IOpenApiSerializable, IOpenApiExtensible
5757
public IDictionary<string, IOpenApiAny> Extensions { get; set; } = new Dictionary<string, IOpenApiAny>();
5858

5959
/// <summary>
60-
/// Serialize <see cref="OpenApiDocument"/> to Open Api v3.0.0
60+
/// Serialize <see cref="OpenApiDocument"/> to the latest patch of OpenAPI object V3.0.
6161
/// </summary>
6262
public void SerializeAsV3(IOpenApiWriter writer)
6363
{
@@ -69,7 +69,7 @@ public void SerializeAsV3(IOpenApiWriter writer)
6969
writer.WriteStartObject();
7070

7171
// openapi
72-
writer.WriteProperty(OpenApiConstants.OpenApi, "3.0.0");
72+
writer.WriteProperty(OpenApiConstants.OpenApi, "3.0.1");
7373

7474
// info
7575
writer.WriteRequiredObject(OpenApiConstants.Info, Info, (w, i) => i.SerializeAsV3(w));
@@ -102,7 +102,7 @@ public void SerializeAsV3(IOpenApiWriter writer)
102102
}
103103

104104
/// <summary>
105-
/// Serialize <see cref="OpenApiDocument"/> to Open Api v2.0.
105+
/// Serialize <see cref="OpenApiDocument"/> to OpenAPI object V2.0.
106106
/// </summary>
107107
public void SerializeAsV2(IOpenApiWriter writer)
108108
{

src/Microsoft.OpenApi/OpenApiSerializerSettings.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ public sealed class OpenApiSerializerSettings
1111
/// <summary>
1212
/// Open Api specification version
1313
/// </summary>
14-
public OpenApiSpecVersion SpecVersion { get; set; } = OpenApiSpecVersion.OpenApi3_0_0;
14+
public OpenApiSpecVersion SpecVersion { get; set; } = OpenApiSpecVersion.OpenApi3_0;
1515

1616
/// <summary>
1717
/// Open Api document format.

src/Microsoft.OpenApi/OpenApiSpecVersion.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,18 @@
44
namespace Microsoft.OpenApi
55
{
66
/// <summary>
7-
/// Represents the Open Api specification version.
7+
/// Represents versions of OpenAPI specification.
88
/// </summary>
99
public enum OpenApiSpecVersion
1010
{
1111
/// <summary>
12-
/// Open Api v2.0
12+
/// Represents OpenAPI V2.0 spec
1313
/// </summary>
1414
OpenApi2_0,
1515

1616
/// <summary>
17-
/// Open Api v3.0.0
18-
/// </summary>
19-
OpenApi3_0_0
17+
/// Represents all patches of OpenAPI V3.0 spec (e.g. 3.0.0, 3.0.1)
18+
/// </summary>
19+
OpenApi3_0
2020
}
2121
}

0 commit comments

Comments
 (0)