Danish Meteorological Institutes · API Governance Rules

Danish Meteorological Institutes API Rules

Spectral linting rules defining API design standards and conventions for Danish Meteorological Institutes.

5 Rules error 1 warn 4
View Rules File View on GitHub

Rule Categories

dmi

Rules

warn
dmi-info-license
API info should publish a license, since DMI publishes under CC-BY 4.0.
$.info
error
dmi-server-versioned
Server URLs must include the /v2 version prefix.
$.servers[*].url
warn
dmi-apikey-security
Endpoints should reference the api-key security scheme.
$.paths[*][*]
warn
dmi-feature-collection-response
GET item endpoints should return a FeatureCollection schema.
$.paths[*].get.responses['200'].content['application/geo+json'].schema
warn
dmi-time-resolution-enum
timeResolution parameters should be limited to hour/day/month/year.
$.paths[*].get.parameters[?(@.name == 'timeResolution')].schema

Spectral Ruleset

Raw ↑
extends:
  - spectral:oas
rules:
  dmi-info-license:
    description: API info should publish a license, since DMI publishes under CC-BY 4.0.
    given: $.info
    severity: warn
    then:
      field: license
      function: truthy
  dmi-server-versioned:
    description: Server URLs must include the /v2 version prefix.
    given: $.servers[*].url
    severity: error
    then:
      function: pattern
      functionOptions:
        match: "/v[0-9]+(/|$)"
  dmi-apikey-security:
    description: Endpoints should reference the api-key security scheme.
    given: $.paths[*][*]
    severity: warn
    then:
      field: security
      function: truthy
  dmi-feature-collection-response:
    description: GET item endpoints should return a FeatureCollection schema.
    given: $.paths[*].get.responses['200'].content['application/geo+json'].schema
    severity: warn
    then:
      field: $ref
      function: truthy
  dmi-time-resolution-enum:
    description: timeResolution parameters should be limited to hour/day/month/year.
    given: $.paths[*].get.parameters[?(@.name == 'timeResolution')].schema
    severity: warn
    then:
      field: enum
      function: truthy