Skip to content

Commit 13ddb25

Browse files
committed
Merged with master
2 parents c8773ba + 00f00f0 commit 13ddb25

36 files changed

+333
-93
lines changed

src/Microsoft.OpenApi.Readers/OpenApiStreamReader.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,11 @@ public OpenApiDocument Read(Stream input, out OpenApiDiagnostic diagnostic)
4545

4646
}
4747

48+
/// <summary>
49+
/// Helper method to turn streams into YamlDocument
50+
/// </summary>
51+
/// <param name="input"></param>
52+
/// <returns></returns>
4853
internal static YamlDocument LoadYamlDocument(Stream input)
4954
{
5055
YamlDocument yamlDocument;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ public bool TryLoadReference(ParsingContext context, OpenApiReference reference,
7676
break;
7777

7878
case ReferenceType.Parameter:
79+
// TODO: Handle referencing to a "body" parameter in V2
7980
referencedObject = OpenApiV2Deserializer.LoadParameter(node);
8081
break;
8182

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/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
}

test/Microsoft.OpenApi.Readers.Tests/Microsoft.OpenApi.Readers.Tests.csproj

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,21 @@
6565
<None Update="V2Tests\Samples\minimal.v3.yaml">
6666
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
6767
</None>
68+
<None Update="V2Tests\Samples\OpenApiParameter\formDataParameter.yaml">
69+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
70+
</None>
71+
<None Update="V2Tests\Samples\OpenApiParameter\queryParameter.yaml">
72+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
73+
</None>
74+
<None Update="V2Tests\Samples\OpenApiParameter\pathParameter.yaml">
75+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
76+
</None>
77+
<None Update="V2Tests\Samples\OpenApiParameter\headerParameter.yaml">
78+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
79+
</None>
80+
<None Update="V2Tests\Samples\OpenApiParameter\bodyParameter.yaml">
81+
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
82+
</None>
6883
<None Update="V2Tests\Samples\OpenApiSecurityScheme\apiKeySecurityScheme.yaml">
6984
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
7085
</None>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT license.
3+
4+
using System.IO;
5+
using System.Linq;
6+
using Microsoft.OpenApi.Readers.ParseNodes;
7+
using SharpYaml.Serialization;
8+
9+
namespace Microsoft.OpenApi.Readers.Tests
10+
{
11+
internal class TestHelper
12+
{
13+
public static MapNode CreateYamlMapNode(Stream stream)
14+
{
15+
var yamlStream = new YamlStream();
16+
yamlStream.Load(new StreamReader(stream));
17+
var yamlNode = yamlStream.Documents.First().RootNode;
18+
19+
var context = new ParsingContext();
20+
var diagnostic = new OpenApiDiagnostic();
21+
22+
return new MapNode(context, diagnostic, (YamlMappingNode)yamlNode);
23+
}
24+
}
25+
}

0 commit comments

Comments
 (0)