King Fahd University of Petroleum & Minerals API Rules

Spectral linting rules defining API design standards and conventions for King Fahd University of Petroleum & Minerals.

6 Rules error 2 warn 2 info 2
View Rules File View on GitHub

Rule Categories

kfupm

Rules

error
kfupm-info-title
API info must declare a title (observed "Pure API").
$.info
error
kfupm-info-version
API info must declare a version (observed Pure 5.35.3-4).
$.info
warn
kfupm-server-defined
At least one server must be defined; KFUPM Pure is served from /ws/api.
$.servers
warn
kfupm-operations-have-tags
Pure operations are grouped by resource tag (activities, research-outputs, persons, organizations, ...).
$.paths[*][get,post,put,delete]
info
kfupm-json-media-type
Pure responses are negotiated as application/json.
$.paths[*][get,post,put].responses[*].content
info
kfupm-uuid-path-param
Entity-by-id paths use a UUID-style {uuid} path parameter, matching Pure's UUID identifiers.
$.paths

Spectral Ruleset

Raw ↑
extends: [[spectral:oas, off]]
formats:
  - oas3
documentationUrl: https://pure.kfupm.edu.sa/
rules:
  kfupm-info-title:
    description: API info must declare a title (observed "Pure API").
    severity: error
    given: $.info
    then:
      field: title
      function: truthy

  kfupm-info-version:
    description: API info must declare a version (observed Pure 5.35.3-4).
    severity: error
    given: $.info
    then:
      field: version
      function: truthy

  kfupm-server-defined:
    description: At least one server must be defined; KFUPM Pure is served from /ws/api.
    severity: warn
    given: $.servers
    then:
      function: length
      functionOptions:
        min: 1

  kfupm-operations-have-tags:
    description: Pure operations are grouped by resource tag (activities, research-outputs, persons, organizations, ...).
    severity: warn
    given: $.paths[*][get,post,put,delete]
    then:
      field: tags
      function: truthy

  kfupm-json-media-type:
    description: Pure responses are negotiated as application/json.
    severity: info
    given: $.paths[*][get,post,put].responses[*].content
    then:
      field: application/json
      function: defined

  kfupm-uuid-path-param:
    description: Entity-by-id paths use a UUID-style {uuid} path parameter, matching Pure's UUID identifiers.
    severity: info
    given: $.paths
    then:
      function: defined