University of Gothenburg · API Governance Rules
University of Gothenburg API Rules
Spectral linting rules defining API design standards and conventions for University of Gothenburg.
7 Rules
error 2
warn 5
Rule Categories
gu
Rules
error
gu-servers-must-be-absolute
servers[] must carry an absolute URL. Karp v7 and Karp search v1 publish the relative values `/karp/v7` and `/karps/v1`, which makes the contract unresolvable to any consumer that did not already know the host — and invisible to host-based ownership audits.
$.servers[*].url
error
gu-info-contact-required
info.contact must be present. Korp, Mink, Sparv and Metadata all carry sb-info@svenska.gu.se; Karp v7 and Karp search v1 carry no contact at all, which is what makes them hostless AND ownerless on their face.
$.info
warn
gu-info-license-required
info.license must be present. Four of six declare MIT; Karp v7 and Karp search v1 declare none.
$.info
warn
gu-operations-need-operation-id
Every operation needs an operationId for client generation.
$.paths[*][get,put,post,delete,patch]
warn
gu-operations-need-tags
Every operation must be tagged. Korp tags all fourteen operations; the FastAPI-generated documents tag inconsistently.
$.paths[*][get,put,post,delete,patch]
warn
gu-no-dev-version-in-production-contract
A contract served on a production path must not carry a pre-release version. Mink publishes `3.1.0.dev` at /ws/mink/v3/openapi.json.
$.info.version
warn
gu-security-scheme-must-document-issuance
Where a securityScheme is declared, its description must say how a caller obtains a credential. Five of the six documents declare a scheme; none explains issuance, so every write surface here is undocumented in the one respect a consumer needs.
$.components.securitySchemes[*]
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.