OpenAPITools / OpenAPITools/openapi-diff
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
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Java
- Estrellas
- 1.1k
- Forks
- 190
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
Discussed in https://github.com/OpenAPITools/openapi-diff/discussions/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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza revisando PathDiff.java, la interfaz ExtensionDiff y la implementación propuesta XLifecycleExtensionDiff; después inspecciona los ejemplos adjuntos pet_source.yaml y pet_target.yaml. Traza cómo se notifican actualmente las diferencias de extensiones en los ámbitos de esquema, ruta y propiedad. Se considera terminado cuando se detecten diferencias de x-lifecycle para los casos de rutas y propiedades descritos en la issue.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- java
- Área
- api
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 30/100