IKEA · API Governance Rules
IKEA API Rules
Spectral linting rules defining API design standards and conventions for IKEA.
34 Rules
error 14
warn 19
info 1
Rule Categories
ikea
Rules
error
ikea-info-title-prefix
info.title must start with "IKEA " so the spec is identifiable.
$.info.title
error
ikea-info-description-required
info.description is required and should be at least 40 chars and call out that the spec is unofficial.
$.info
error
ikea-info-version-semver
info.version must follow semantic versioning (MAJOR.MINOR.PATCH).
$.info.version
error
ikea-info-license-required
A license must be declared on every IKEA community spec.
$.info.license
warn
ikea-info-contact-required
A contact entry must be declared so consumers can reach the maintainer.
$.info.contact
error
ikea-openapi-version
All IKEA community specs must use OpenAPI 3.1.x.
$.openapi
error
ikea-servers-defined
At least one server must be defined.
$
error
ikea-servers-https
All server URLs must use HTTPS.
$.servers[*].url
warn
ikea-servers-description-required
Every server entry must have a description.
$.servers[*]
warn
ikea-paths-kebab-or-template
Path segments must be kebab-case or curly-brace path parameters.
$.paths.*~
warn
ikea-paths-no-trailing-slash
Paths must not end with a trailing slash.
$.paths.*~
error
ikea-paths-no-query-string
Paths must not contain query strings; use parameters instead.
$.paths.*~
error
ikea-operation-summary-required
Every operation must have a summary.
$.paths.*[get,post,put,patch,delete]
warn
ikea-operation-summary-ikea-prefix
Operation summaries must start with "IKEA " (Title Case Summaries convention).
$.paths.*[get,post,put,patch,delete].summary
warn
ikea-operation-description-required
Every operation must have a description.
$.paths.*[get,post,put,patch,delete]
error
ikea-operation-id-required
Every operation must have an operationId.
$.paths.*[get,post,put,patch,delete]
warn
ikea-operation-id-camel-case
operationId must be camelCase.
$.paths.*[get,post,put,patch,delete].operationId
warn
ikea-operation-id-verb-prefix
operationId should start with a CRUD verb (get/list/find/create/update/delete/search).
$.paths.*[get,post,put,patch,delete].operationId
warn
ikea-operation-tags-required
Every operation must declare at least one tag.
$.paths.*[get,post,put,patch,delete]
warn
ikea-global-tags-defined
Global tags array must be defined and non-empty.
$
warn
ikea-tag-description-required
Each global tag must have a description.
$.tags[*]
warn
ikea-tag-name-title-case
Tag names should be Title Case (e.g. "Products", "Spare Parts").
$.tags[*].name
warn
ikea-parameter-description-required
Every parameter must have a description.
$..parameters[*]
warn
ikea-parameter-name-camel-case
Query/path/header parameter names should be camelCase.
$..parameters[*].name
error
ikea-response-2xx-required
Every operation must declare at least one 2xx response.
$.paths.*[get,post,put,patch,delete].responses
error
ikea-response-description-required
Every response must have a description.
$.paths.*[get,post,put,patch,delete].responses[*]
warn
ikea-response-json-content
Successful responses should provide application/json content.
$.paths.*[get,post,put,patch,delete].responses[?(@property.match(/^2/))]
warn
ikea-schema-property-camel-case
Schema property names should be camelCase (matches the IKEA storefront JSON convention).
$.components.schemas.*.properties.*~
warn
ikea-schema-property-description
Top-level schema properties should have a description.
$.components.schemas.*.properties.*
warn
ikea-schema-type-required
Schemas must declare a type (object/array/string/etc).
$.components.schemas.*
error
ikea-get-no-request-body
GET operations must not declare a request body.
$.paths.*.get
error
ikea-delete-no-request-body
DELETE operations must not declare a request body.
$.paths.*.delete
warn
ikea-no-empty-description
Descriptions must not be empty strings.
$..description
info
ikea-examples-encouraged
Operations should have at least one example on a successful response (Microcks-friendly).
$.paths.*[get,post,put,patch,delete].responses[?(@property.match(/^2/))].content.*