-
Notifications
You must be signed in to change notification settings - Fork 276
Release/1.2.0 #482
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Release/1.2.0 #482
Changes from 1 commit
Commits
Show all changes
104 commits
Select commit
Hold shift + click to select a range
663b1ab
OpenApiDocuments Diff Preview (#303)
Shwetap05 6ce0d25
Merge pull request #321 from Microsoft/master
PerthCharern 212b6ac
Merge pull request #325 from Microsoft/perthcharern/fixDateTimeJson
PerthCharern 0c86ee2
Open api schema diff (#316)
Shwetap05 a674f47
Added comparison logic for
Shwetap05 f9bdc15
FIx review comments
Shwetap05 59260d3
Added more comparers (#328)
Shwetap05 f3efe85
Comparer logic for Example
Shwetap05 f3e778a
merge
Shwetap05 17079ee
Fix merge issues
Shwetap05 9063d2a
Fix review comments
Shwetap05 3eb2200
Open api example comparer (#331)
Shwetap05 0573764
fixes#330-Yield validation err when an invalid security req key found
senthilkumarmohan 78b0154
Merge pull request #334 from Microsoft/master
PerthCharern 8c7b7ef
Merge pull request #339 from senthilkumarmohan/bugfix#330-invalid-sec…
PerthCharern b39d037
Collapsed components that are references
darrelmiller f621768
Diagnostic moved from MapNode to ParsingContext
VitaliyKurokhtin 2c7663a
Explicitly specified string must stay a string
VitaliyKurokhtin 83b5d87
Small readers optimization
VitaliyKurokhtin a589416
'produces' at operation level must override one specified at global l…
VitaliyKurokhtin 4df5db8
OpenApiYamlDocumentReader added
VitaliyKurokhtin d180b0d
Orphan method removed
VitaliyKurokhtin 281fc85
Always emitting description property for response object. It's required
VitaliyKurokhtin ef69409
Tests fixed
VitaliyKurokhtin e2f8da0
Guessing datetime offset type from empty string
VitaliyKurokhtin 84839da
Updated nuget versions for next package release
darrelmiller 122a471
Merge branch 'master' into vnext
darrelmiller 79f608d
Merge branch 'OpenApiExampleComparer' into dm/updatevnext
darrelmiller 0522d63
Marked failed comparer tests as skip
darrelmiller a66f4f1
Comment change to trigger build
darrelmiller 5e0c6a7
Another comment change to trigger build
darrelmiller f1af891
Merge pull request #439 from microsoft/dm/OpenApiComparer
darrelmiller 4963f14
Merge branch 'vnext' into 1.2.0-preview
darrelmiller 38287d7
Merge pull request #437 from microsoft/1.2.0-preview
darrelmiller 1c8398c
Merge branch 'vnext' into vvk/diagnostic-in-context
darrelmiller abfebb1
Merge pull request #433 from VitaliyKurokhtin/vvk/diagnostic-in-context
darrelmiller 42d51bb
Always emitting description for response unless $ref is specified
VitaliyKurokhtin 92ba7a3
Merge branch 'vnext' into vvk/required
darrelmiller 06bc518
Merge pull request #436 from VitaliyKurokhtin/vvk/required
darrelmiller 188593d
Resolve merge conflicts
darrelmiller a4c86b9
Merge remote-tracking branch 'origin/vnext' into vvk/readers
darrelmiller 3730d63
Make OpenApiYamlDocumentReader internal
darrelmiller ad37608
Updates to reflect other changes to vnext
darrelmiller 2c431c0
Merge pull request #443 from microsoft/vvk/readers
darrelmiller 147b947
Merge branch 'vnext' into vvk/produces
darrelmiller 48fe3d5
Merge pull request #435 from VitaliyKurokhtin/vvk/produces
darrelmiller cefec96
Merge branch 'vnext' into vvk/explicit-string
darrelmiller 841b947
Merge pull request #431 from VitaliyKurokhtin/vvk/explicit-string
darrelmiller 42303da
Resolve all references in a parameter
darrelmiller ffae5d2
Fixed merge conflicts with vnext
darrelmiller 9d4e6a4
Merge pull request #445 from microsoft/dm/fix425
darrelmiller 9e8a5da
Merge branch 'vnext' into dm/componentreference
darrelmiller 409e039
Merge pull request #418 from microsoft/dm/componentreference
darrelmiller 1ef0f3b
Formatting fixes generated from dotnet-format
darrelmiller 9c5a46b
Updated referenced packages
darrelmiller af7811e
Updated V2 writer to output relative server Urls
darrelmiller 3fffa56
Merge pull request #446 from microsoft/dm/updatedPackages
darrelmiller c8b6a8e
Merge branch 'vnext' into dm/formatting
darrelmiller 3aeeef6
Merge pull request #447 from microsoft/dm/formatting
darrelmiller c795a24
Merge branch 'vnext' into dm/fix440
darrelmiller 8ea512c
Merge pull request #448 from microsoft/dm/fix440
darrelmiller f00c27c
Added support for inlining references when writing out API descriptions
darrelmiller 08bb98f
Added empty object to components.
darrelmiller 456cec5
Added support for inlining header refefences
darrelmiller 05619b5
Merged changes with vnext
darrelmiller 9e42a5f
Added support for handling cycles
darrelmiller 3516127
Merge pull request #449 from microsoft/dm/inlinewriter
darrelmiller e1ecbce
Seems to correctly inline schemas for v2
darrelmiller 9f715d4
Initial implementation of OpenAPI cmdline tool
darrelmiller 3c91a1d
Merge pull request #452 from microsoft/dm/fixv2cycles
darrelmiller ab91774
Merge remote-tracking branch 'origin/vnext' into dm/commandline
darrelmiller 6926b6d
First running version of OpenApi tool
darrelmiller bdf23f7
Installation section added to readme file.
mihaj d7c6bbf
Fixes #456.
da0612c
Merge pull request #457 from ozziepeeps/456
darrelmiller 9212cbd
Merge branch 'vnext' into vnext
darrelmiller d5c0b0b
Merge pull request #455 from mihaj/vnext
darrelmiller bd19a68
Fixes #458
e6989b5
Safer parsing of explicit strings
VitaliyKurokhtin 8851cf3
Merge pull request #461 from VitaliyKurokhtin/explicit-string-parsing
darrelmiller 542bddc
Merge branch 'vnext' into 458
darrelmiller 6f5e63c
Merge pull request #460 from ozziepeeps/458
darrelmiller 29b8144
Merge branch 'vnext' into dm/commandline
darrelmiller cf7002a
Fix warnings
darrelmiller fa20804
Updated nuget packages
darrelmiller 92f2fe4
touch
darrelmiller 03b1034
Moved commandline tool to .net core 3.0
darrelmiller 842be3b
Moved commandline tool to .net core 2.2
darrelmiller 8215249
Put commandline tool back to 3.1 now that pipeline has new Nuget
darrelmiller fc399ed
Fixed inlining of v2
darrelmiller 86c41f8
Merge pull request #453 from microsoft/dm/commandline
darrelmiller 596b359
Merge branch 'vnext' into dm/fixv2inline
darrelmiller 61b44fc
Merge pull request #465 from microsoft/dm/fixv2inline
darrelmiller 8a7074d
Updated to 1.2.0-preview.2
darrelmiller ca68755
Merge pull request #466 from microsoft/dm/updatepreview2
darrelmiller 10485c0
Fixes missing oneOf child object in walker method for OpenApiSchema
5429aec
Merge pull request #469 from irvinesunday/vnext
darrelmiller 73ee43f
Updated version number
darrelmiller 3d62054
Merge pull request #470 from microsoft/dm/1.2.0-preview.3
darrelmiller b7d1006
Updated version to 1.2.0
darrelmiller 1b904ab
Removed comparer functionality for this release as it is not ready
darrelmiller 316d703
Added missing comment
darrelmiller c309dd9
Fixed build.cmd file
darrelmiller 7b0332a
Fixed comment
darrelmiller File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
OpenApiYamlDocumentReader added
- Loading branch information
commit 4df5db817e447abad55a826044de57a8eb9452e7
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
141 changes: 141 additions & 0 deletions
141
src/Microsoft.OpenApi.Readers/OpenApiYamlDocumentReader.cs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| // Copyright (c) Microsoft Corporation. All rights reserved. | ||
| // Licensed under the MIT license. | ||
|
|
||
| using System; | ||
| using System.IO; | ||
| using System.Linq; | ||
| using Microsoft.OpenApi.Exceptions; | ||
| using Microsoft.OpenApi.Extensions; | ||
| using Microsoft.OpenApi.Interfaces; | ||
| using Microsoft.OpenApi.Models; | ||
| using Microsoft.OpenApi.Readers.Interface; | ||
| using Microsoft.OpenApi.Readers.Services; | ||
| using Microsoft.OpenApi.Services; | ||
| using SharpYaml.Serialization; | ||
|
|
||
| namespace Microsoft.OpenApi.Readers | ||
| { | ||
| /// <summary> | ||
| /// Service class for converting contents of TextReader into OpenApiDocument instances | ||
| /// </summary> | ||
| public class OpenApiYamlDocumentReader : IOpenApiReader<YamlDocument, OpenApiDiagnostic> | ||
| { | ||
| private readonly OpenApiReaderSettings _settings; | ||
|
|
||
| /// <summary> | ||
| /// Create stream reader with custom settings if desired. | ||
| /// </summary> | ||
| /// <param name="settings"></param> | ||
| public OpenApiYamlDocumentReader(OpenApiReaderSettings settings = null) | ||
| { | ||
| _settings = settings ?? new OpenApiReaderSettings(); | ||
| } | ||
|
|
||
| /// <summary> | ||
| /// Reads the stream input and parses it into an Open API document. | ||
| /// </summary> | ||
| /// <param name="input">TextReader containing OpenAPI description to parse.</param> | ||
| /// <param name="diagnostic">Returns diagnostic object containing errors detected during parsing</param> | ||
| /// <returns>Instance of newly created OpenApiDocument</returns> | ||
| public OpenApiDocument Read(YamlDocument input, out OpenApiDiagnostic diagnostic) | ||
| { | ||
| diagnostic = new OpenApiDiagnostic(); | ||
| var context = new ParsingContext | ||
| { | ||
| ExtensionParsers = _settings.ExtensionParsers, | ||
| BaseUrl = _settings.BaseUrl | ||
| }; | ||
|
|
||
| OpenApiDocument document = null; | ||
| try | ||
| { | ||
| // Parse the OpenAPI Document | ||
| document = context.Parse(input, diagnostic); | ||
|
|
||
| // Resolve References if requested | ||
| switch (_settings.ReferenceResolution) | ||
| { | ||
| case ReferenceResolutionSetting.ResolveAllReferences: | ||
| throw new ArgumentException(Properties.SRResource.CannotResolveRemoteReferencesSynchronously); | ||
| case ReferenceResolutionSetting.ResolveLocalReferences: | ||
| var resolver = new OpenApiReferenceResolver(document); | ||
| var walker = new OpenApiWalker(resolver); | ||
| walker.Walk(document); | ||
| foreach (var item in resolver.Errors) | ||
| { | ||
| diagnostic.Errors.Add(item); | ||
| } | ||
| break; | ||
| case ReferenceResolutionSetting.DoNotResolveReferences: | ||
| break; | ||
| } | ||
| } | ||
| catch (OpenApiException ex) | ||
| { | ||
| diagnostic.Errors.Add(new OpenApiError(ex)); | ||
| } | ||
|
|
||
| // Validate the document | ||
| if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count > 0) | ||
| { | ||
| var errors = document.Validate(_settings.RuleSet); | ||
| foreach (var item in errors) | ||
| { | ||
| diagnostic.Errors.Add(item); | ||
| } | ||
| } | ||
|
|
||
| return document; | ||
| } | ||
| /// <summary> | ||
| /// Reads the stream input and parses the fragment of an OpenAPI description into an Open API Element. | ||
| /// </summary> | ||
| /// <param name="input">TextReader containing OpenAPI description to parse.</param> | ||
| /// <param name="version">Version of the OpenAPI specification that the fragment conforms to.</param> | ||
| /// <param name="diagnostic">Returns diagnostic object containing errors detected during parsing</param> | ||
| /// <returns>Instance of newly created OpenApiDocument</returns> | ||
| public T ReadFragment<T>(YamlDocument input, OpenApiSpecVersion version, out OpenApiDiagnostic diagnostic) where T : IOpenApiElement | ||
| { | ||
| diagnostic = new OpenApiDiagnostic(); | ||
| var context = new ParsingContext | ||
| { | ||
| ExtensionParsers = _settings.ExtensionParsers | ||
| }; | ||
|
|
||
| IOpenApiElement element = null; | ||
| try | ||
| { | ||
| // Parse the OpenAPI element | ||
| element = context.ParseFragment<T>(input, version, diagnostic); | ||
| } | ||
| catch (OpenApiException ex) | ||
| { | ||
| diagnostic.Errors.Add(new OpenApiError(ex)); | ||
| } | ||
|
|
||
| // Validate the element | ||
| if (_settings.RuleSet != null && _settings.RuleSet.Rules.Count > 0) | ||
| { | ||
| var errors = element.Validate(_settings.RuleSet); | ||
| foreach (var item in errors) | ||
| { | ||
| diagnostic.Errors.Add(item); | ||
| } | ||
| } | ||
|
|
||
| return (T)element; | ||
| } | ||
|
|
||
| /// <summary> | ||
| /// Helper method to turn streams into YamlDocument | ||
| /// </summary> | ||
| /// <param name="input">Stream containing YAML formatted text</param> | ||
| /// <returns>Instance of a YamlDocument</returns> | ||
| static YamlDocument LoadYamlDocument(TextReader input) | ||
| { | ||
| var yamlStream = new YamlStream(); | ||
| yamlStream.Load(input); | ||
| return yamlStream.Documents.First(); | ||
| } | ||
| } | ||
| } |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.