CryptoQuant · API Governance Rules

CryptoQuant API Rules

Spectral linting rules defining API design standards and conventions for CryptoQuant.

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

Rule Categories

cryptoquant

Rules

error
cryptoquant-server-https
CryptoQuant servers must use HTTPS.
$.servers[*].url
warn
cryptoquant-versioned-path
CryptoQuant base URL should include /v{n} path version.
$.servers[*].url
error
cryptoquant-bearer-auth
CryptoQuant API must declare bearer auth scheme.
$.components.securitySchemes
warn
cryptoquant-window-param
Time-series operations should accept a window parameter.
$.paths[*][get].parameters[?(@.name=='window')]
warn
cryptoquant-tag-required
Operations must declare a tag.
$.paths[*][get,post,put,delete]
warn
cryptoquant-operation-id-camel
Operation IDs should be camelCase.
$.paths[*][get,post,put,delete].operationId

Spectral Ruleset

Raw ↑
extends: [[spectral:oas, all]]
rules:
  cryptoquant-server-https:
    description: CryptoQuant servers must use HTTPS.
    given: $.servers[*].url
    severity: error
    then:
      function: pattern
      functionOptions:
        match: '^https://'
  cryptoquant-versioned-path:
    description: CryptoQuant base URL should include /v{n} path version.
    given: $.servers[*].url
    severity: warn
    then:
      function: pattern
      functionOptions:
        match: '/v[0-9]+'
  cryptoquant-bearer-auth:
    description: CryptoQuant API must declare bearer auth scheme.
    given: $.components.securitySchemes
    severity: error
    then:
      function: truthy
  cryptoquant-window-param:
    description: Time-series operations should accept a window parameter.
    given: $.paths[*][get].parameters[?(@.name=='window')]
    severity: warn
    then:
      field: schema.enum
      function: truthy
  cryptoquant-tag-required:
    description: Operations must declare a tag.
    given: $.paths[*][get,post,put,delete]
    severity: warn
    then:
      field: tags
      function: truthy
  cryptoquant-operation-id-camel:
    description: Operation IDs should be camelCase.
    given: $.paths[*][get,post,put,delete].operationId
    severity: warn
    then:
      function: pattern
      functionOptions:
        match: '^[a-z][a-zA-Z0-9]+$'