OpenAPITools / OpenAPITools/openapi-diff
[2.1.0-beta.6 and oas-3.1.0] Request body property data type change is detected as compatible or no_change
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
- string to object (actual: compatible, expected: incompatible)
- string to integer/integer to string (actual: no_change, expected: incompatible)
Case 1:
old.yml
openapi: 3.1.0
info:
title: Demo API
version: v1
paths:
/endpoint:
post:
requestBody:
content:
application/json:
schema:
type: object
required:
- requiredProp
- requiredToRemoveProp
- dataTypeChangedRequiredProp
- requiredToOptionalProp
properties:
requiredProp:
type: string
optionalProp:
type: string
optionalToRemoveProp:
type: string
requiredToRemoveProp:
type: string
dataTypeChangedRequiredProp:
type: string
dataTypeChangedOptionalProp:
type: string
optionalToRequiredProp:
type: string
requiredToOptionalProp:
type: string
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: integer
format: int64
example: 201
new.yml
openapi: 3.1.0
info:
title: Demo API
version: v1
paths:
/endpoint:
post:
requestBody:
content:
application/json:
schema:
type: object
required:
- requiredProp
- requiredToRemoveProp
- dataTypeChangedRequiredProp
- requiredToOptionalProp
properties:
requiredProp:
type: string
optionalProp:
type: string
optionalToRemoveProp:
type: string
requiredToRemoveProp:
type: string
dataTypeChangedRequiredProp:
type: object
properties:
id:
type: string
dataTypeChangedOptionalProp:
type: string
optionalToRequiredProp:
type: string
requiredToOptionalProp:
type: string
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: integer
format: int64
example: 201
Case 2:
old.yml
openapi: 3.1.0
info:
title: Demo API
version: v1
paths:
/endpoint:
post:
requestBody:
content:
application/json:
schema:
type: object
required:
- requiredProp
- requiredToRemoveProp
- dataTypeChangedRequiredProp
- requiredToOptionalProp
properties:
requiredProp:
type: string
optionalProp:
type: string
optionalToRemoveProp:
type: string
requiredToRemoveProp:
type: string
dataTypeChangedRequiredProp:
type: integer
dataTypeChangedOptionalProp:
type: string
optionalToRequiredProp:
type: string
requiredToOptionalProp:
type: string
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: integer
format: int64
example: 201
new.yml
openapi: 3.1.0
info:
title: Demo API
version: v1
paths:
/endpoint:
post:
requestBody:
content:
application/json:
schema:
type: object
required:
- requiredProp
- requiredToRemoveProp
- dataTypeChangedRequiredProp
- requiredToOptionalProp
properties:
requiredProp:
type: string
optionalProp:
type: string
optionalToRemoveProp:
type: string
requiredToRemoveProp:
type: string
dataTypeChangedRequiredProp:
type: string
dataTypeChangedOptionalProp:
type: string
optionalToRequiredProp:
type: string
requiredToOptionalProp:
type: string
responses:
default:
description: successful operation
content:
application/json:
schema:
type: object
properties:
status:
type: integer
format: int64
example: 201
Examples are having data-type change only for required property but tested the same for optional property giving same output
Command used: docker run --rm -t -v $(pwd):/specs openapitools/openapi-diff:2.1.0-beta.6 /specs/old.yml /specs/new.yml --state
EDIT: The same changes are considered as incompatible with openapi: 3.0.3 and below
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 reproduciendo el informe con old.yml y new.yml mediante el comando de Docker de openapi-diff indicado, comparando los resultados de OpenAPI 3.1.0 con el comportamiento de 3.0.3. Rastrea la comparación del tipo del esquema del cuerpo de la solicitud y añade cobertura de regresión para los cambios de string/object y string/integer; se considera completado cuando estos cambios se notifican como incompatibles.
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
- 3/5
- Tiempo estimado
- 1-2 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100