University of York · API Governance Rules
University of York API Rules
Spectral linting rules defining API design standards and conventions for University of York.
14 Rules
error 9
warn 5
Rule Categories
error
info
keyless
operation
operator
provenance
servers
Rules
error
info-title-present
API must declare a title.
$.info
error
info-version-present
API must declare a version.
$.info
error
info-description-present
API must carry a description. For an institution with no developer portal, the contract is the only documentation that exists.
$.info
error
operator-declared
Every contract in a university repository must declare x-operator, so an institution is never silently credited with a vendor's engineering.
$.info
error
provenance-declared
Every contract must declare how it was obtained (x-provenance.method).
$.info
error
servers-absolute
servers[].url must be absolute. A relative or missing server is how vendor contracts pass an ownership audit unexamined.
$.servers[*]
error
servers-institution-host
Every server in this repository must be under york.ac.uk. Anything else is a tenant or vendor surface and belongs in apis.yml as a relationship, not here as a contract.
$.servers[*]
error
operation-id-present
Every operation should declare an operationId.
$.paths[*][get,post,put,patch,delete]
warn
operation-summary-present
Every operation should carry a summary.
$.paths[*][get,post,put,patch,delete]
error
operation-tagged
Every operation must be tagged, so refine-openapis can split cleanly.
$.paths[*][get,post,put,patch,delete]
warn
keyless-declared-explicitly
These surfaces are keyless. Say so with an explicit empty security array rather than by omission, so an agent can tell "no auth needed" from "auth undocumented".
$.paths[*][get]
warn
error-response-documented
Every operation should document at least one non-2xx response. Measured gap: the University publishes no error model, so the contract has to carry it.
$.paths[*][get]
warn
info-license-present
MEASURED GAP, not a style preference. No University of York API surface states a licence or terms of use, and the IIIF manifests carry no rights property. Reuse conditions are unstated.
$.info
warn
info-contact-present
MEASURED GAP. There is no developer contact for any of these APIs; the contact recorded in these contracts is the nearest responsible team, not an API support channel.
$.info
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.