microsoft / OpenAPI.NET

The OpenAPI.NET SDK contains a useful object model for OpenAPI documents in .NET along with common serializers to extract raw OpenAPI JSON and YAML documents from the model.
MIT License
1.42k stars 239 forks source link

Examples are missing after converting V3 swagger to V2 #1430

Open TinaLiu02 opened 1 year ago

TinaLiu02 commented 1 year ago

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:

  1. run project Microsoft.OpenApi.Workbench
  2. copy the content of v3 swagger file and paste it to "input content" area
  3. 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 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 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: image

image

darrelmiller commented 1 year ago

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?

TinaLiu02 commented 1 year ago

yes. that would be great.

darrelmiller commented 11 months ago

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

darrelmiller commented 10 months ago

@MaggieKimani1 Why is this a breaking change? Could this not be implemented in the current V1.x branch?

MaggieKimani1 commented 10 months ago

@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.