API change rules
During comparison of API specifications, APIHUB (qubership-apihub-api-diff) classifies each change by severity.
Severity of changes
Section titled “Severity of changes”- Breaking change breaks backward compatibility with the previous version of the API. For example, deleting an operation, adding a required parameter, or changing the type of a parameter are breaking changes.
- Requires Attention is a change that can break backward compatibility with the previous version of the API, depending on the implementation of a client. This category also includes breaking changes in operations annotated as no-BWC.
- Deprecating change annotates an operation, parameter, or schema as deprecated. Removing a “deprecated” annotation is also a deprecating change.
- Non-breaking change does not break backward compatibility with the previous version of the API. For example, adding a new operation or an optional parameter is a non-breaking change.
- Annotation change enriches the API documentation with information that does not affect the functionality of the API. For example, adding, changing, or deleting descriptions or examples is an annotation change.
- Unclassified change cannot be classified as any of the other types.
Compatibility suite
Section titled “Compatibility suite”The compatibility suite lists the changes that APIHUB detects in OpenAPI 3.0, OpenAPI 3.1, and GraphQL
specifications. Each change has an identifier and a severity, and the example files in
frontend/compatibility-suites/bin/ show the specification before and after the change.
OpenAPI
Section titled “OpenAPI”The pages follow the order of the old wiki sidebar.
- General operation parameters
- Headers
- Operation parameters
- Parameters. Schema: large table
- Parameters. Examples
- Request
- RequestBody. Schema: large table
- RequestBody. Examples
- Response
- ResponseBody. Schema: large table
- ResponseBody. Examples
- ResponseHeaders. Schema: large table
- OAS extensions