Examples are missing after converting V3 swagger to V2
Bug: we need to convert V3 swagger to V2 and transform the examples, but examples part in request/responses/components are missing after converting V3 swagger to V2. v3 swagger file: https://github.com/linkedin-developers/job-posting-development-tools/blob/master/OpenAPI-specification/job_posting_v2.yaml
To Reproduce Steps to reproduce the current behavior:
- run project Microsoft.OpenApi.Workbench
- copy the content of v3 swagger file and paste it to "input content" area
- choose JSON for Format, choose V2.0 for Version and click button "Convert"
Expected behavior examples should display in V2 swagger.
Screenshots/Code Snippets stack trace:
Microsoft.OpenApi.dll!Microsoft.OpenApi.Models.OpenApiDocument.SerializeAsV2(Microsoft.OpenApi.Writers.IOpenApiWriter writer) Line 143 C# Microsoft.OpenApi.dll!Microsoft.OpenApi.Extensions.OpenApiSerializableExtensions.Serialize<Microsoft.OpenApi.Models.OpenApiDocument>(Microsoft.OpenApi.Models.OpenApiDocument element, Microsoft.OpenApi.Writers.IOpenApiWriter writer, Microsoft.OpenApi.OpenApiSpecVersion specVersion) Line 125 C# Microsoft.OpenApi.dll!Microsoft.OpenApi.Extensions.OpenApiSerializableExtensions.Serialize<Microsoft.OpenApi.Models.OpenApiDocument>(Microsoft.OpenApi.Models.OpenApiDocument element, System.IO.Stream stream, Microsoft.OpenApi.OpenApiSpecVersion specVersion, Microsoft.OpenApi.OpenApiFormat format, Microsoft.OpenApi.Writers.OpenApiWriterSettings settings) Line 94 C# Microsoft.OpenApi.Workbench.dll!Microsoft.OpenApi.Workbench.MainModel.WriteContents(Microsoft.OpenApi.Models.OpenApiDocument document) Line 312 C# Microsoft.OpenApi.Workbench.dll!Microsoft.OpenApi.Workbench.MainModel.ParseDocument() Line 279 C# Microsoft.OpenApi.Workbench.dll!Microsoft.OpenApi.Workbench.MainWindow.Button_Click(object sender, System.Windows.RoutedEventArgs e) Line 26 C#
screenshot:
Unfortunately there is no support for multiple examples for body parameters in OpenAPI v2. We could carry the examples though to the V2 document as an extension. e.g. x-examples Would that address your need?
yes. that would be great.
We need to add serializing of the examples map to x-examples here https://github.com/microsoft/OpenAPI.NET/blob/05c56159eaed252744ed3a77aef0a6cc8351e31c/src/Microsoft.OpenApi/Models/OpenApiResponse.cs#L187
@MaggieKimani1 Why is this a breaking change? Could this not be implemented in the current V1.x branch?
@MaggieKimani1 Why is this a breaking change? Could this not be implemented in the current V1.x branch?
You're right, this isn't a breaking change. I have rebased the branch onto vnext so that this goes out with the next v1.x release.