| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
OpenAPI gave API definitions a formal model. This repository does the same for API changes: a machine-readable classification of every possible change to an OpenAPI contract, and whether each one breaks existing API consumers.
The model is one file, openapi-changes-model.yaml. It contains:
See SPEC.md for an explanation of the concepts.
Draft (0.1.0). The model is exported from oasdiff, its reference implementation, at every oasdiff release; the generator in generator/ pins the exact version. The direction of authority is deliberate for now: verdicts are debated here, decided changes land in the reference implementation, and the next export carries them. As the model stabilizes, the intent is to reverse this: the model becomes the source of truth and implementations, oasdiff included, derive from it.
Disagreement with a verdict is the most valuable contribution. If you believe a change is classified wrongly, wrongly waived, or missing:
The severity law is the part most worth challenging: it is short, explicit, and every one of the 681 verdicts follows from it. An argument that changes the law changes everything downstream, on purpose.
Each named change carries claims, the edits it covers. A claim is a path into the OpenAPI definition plus the action performed there: paths.*.*.requestBody.content.*.schema.maxLength:decrease reads as "the maxLength keyword of any request body schema, decreased", with * standing in for a name the API author chooses, such as a specific path, method, or media type, as opposed to the fixed field names of the specification.
- id: request-property-max-length-decreased
level: error
direction: request
effect: narrows
claims:
- paths.*.*.requestBody.content.*.schema.maxLength:decrease
message: the %s request property's maxLength was decreased to %sThe coverage section is the exhaustiveness proof: every edit's disposition, including the written reason for every exclusion. The reference implementation's build fails if an edit is left undecided or a reason goes stale.
Apache-2.0, the same license as the OpenAPI Specification.
| Back | FazBrowse Home | New Git URL |