The Open Movie Database · API Governance Rules

The Open Movie Database API Rules

Spectral linting rules defining API design standards and conventions for The Open Movie Database.

9 Rules error 5 warn 3 info 1
View Rules File View on GitHub

Rule Categories

omdb

Rules

error
omdb-api-key-security
All operations must require the apiKey query parameter security scheme.
$.paths[*][get,post,put,delete,patch]
error
omdb-operation-summary
Every operation must have a non-empty summary.
$.paths[*][get,post,put,delete,patch]
warn
omdb-title-case-summary
Operation summaries must use Title Case.
$.paths[*][get,post,put,delete,patch].summary
warn
omdb-operation-tags
Every operation must have at least one tag.
$.paths[*][get,post,put,delete,patch]
error
omdb-200-response
Every operation must define a 200 response.
$.paths[*][get,post,put,delete,patch].responses
error
omdb-https-servers
All server URLs must use HTTPS.
$.servers[*].url
warn
omdb-parameter-descriptions
All parameters must include a description.
$.paths[*][*].parameters[*]
info
omdb-schema-descriptions
All schema objects in components should have a description.
$.components.schemas[*]
error
omdb-operation-id
Every operation must define an operationId.
$.paths[*][get,post,put,delete,patch]

Spectral Ruleset

Raw ↑
rules:
  omdb-api-key-security:
    description: All operations must require the apiKey query parameter security scheme.
    message: "Operation '{{operationId}}' is missing apiKey security requirement."
    severity: error
    given: "$.paths[*][get,post,put,delete,patch]"
    then:
      - field: security
        function: truthy

  omdb-operation-summary:
    description: Every operation must have a non-empty summary.
    message: "Operation '{{operationId}}' is missing a summary."
    severity: error
    given: "$.paths[*][get,post,put,delete,patch]"
    then:
      - field: summary
        function: truthy

  omdb-title-case-summary:
    description: Operation summaries must use Title Case.
    message: "Summary '{{value}}' should be in Title Case."
    severity: warn
    given: "$.paths[*][get,post,put,delete,patch].summary"
    then:
      function: pattern
      functionOptions:
        match: "^[A-Z][^a-z]*([A-Z][^A-Z]*)*"

  omdb-operation-tags:
    description: Every operation must have at least one tag.
    message: "Operation '{{operationId}}' must include at least one tag."
    severity: warn
    given: "$.paths[*][get,post,put,delete,patch]"
    then:
      - field: tags
        function: truthy

  omdb-200-response:
    description: Every operation must define a 200 response.
    message: "Operation '{{operationId}}' is missing a 200 response."
    severity: error
    given: "$.paths[*][get,post,put,delete,patch].responses"
    then:
      - field: "200"
        function: truthy

  omdb-https-servers:
    description: All server URLs must use HTTPS.
    message: "Server URL '{{value}}' must use HTTPS."
    severity: error
    given: "$.servers[*].url"
    then:
      function: pattern
      functionOptions:
        match: "^https://"

  omdb-parameter-descriptions:
    description: All parameters must include a description.
    message: "Parameter '{{value}}' is missing a description."
    severity: warn
    given: "$.paths[*][*].parameters[*]"
    then:
      - field: description
        function: truthy

  omdb-schema-descriptions:
    description: All schema objects in components should have a description.
    message: "Schema '{{path}}' is missing a description."
    severity: info
    given: "$.components.schemas[*]"
    then:
      - field: description
        function: truthy

  omdb-operation-id:
    description: Every operation must define an operationId.
    message: "Operation at '{{path}}' is missing an operationId."
    severity: error
    given: "$.paths[*][get,post,put,delete,patch]"
    then:
      - field: operationId
        function: truthy