Skip to content

The current openapi-diff implementation does not capture differences in extensions that occur at the properties level (attributes under the type object) and the path level #604

Open
@rupeshkumarmall

Description

@rupeshkumarmall

Discussed in #603

Originally posted by rupeshkumarmall December 28, 2023
I have two *.yaml files named pet_source.yaml and pet_target.yaml. The requirement is to identify the differences between the source and target files specifically related to the extension "x-lifecycle."

The extension "x-lifecycle" is utilized in lines 15, 18, 20, and 92 within the pet_source.yaml file. Currently, the implementation can detect the differences concerning the extension only for the differences found in lines 15 and 20 (between source and target schema), but not for the other two instances (when used under the path and the properties scope). However, it should be functioning, at the very least, for the path, as PathDiff.java incorporates ExtensionDiff.

To enhance the implementation, ### can we extend it by introducing the PropertiesDiff.java and ChangedProperties.java classes, along with other necessary modifications in the core implementation, to recognize differences at the property level as well (solely concerning the "x-lifecycle" extension)?

By the way, I have already added another diff implementation that identifies the difference w.r.t the extension "x-lifecycle" as mentioned below,
public class XLifecycleExtensionDiff implements ExtensionDiff

Also added a file under resources directory, openapi-diff-2.0.1\core\src\main\resources\META-INF\services\org.openapitools.openapidiff.core.compare.ExtensionDiff with the content "org.openapitools.openapidiff.core.compare.XLifecycleExtensionDiff"

Attaching the source & the target file,
sample_yaml_for_diff.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions