Agave · API Governance Rules

Agave API Rules

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

24 Rules error 14 warn 10
View Rules File View on GitHub

Rule Categories

get info no openapi operation parameter paths response schema security servers

Rules

error
info-title-required
API title must be present
$.info
warn
info-title-company-prefix
API title must start with "Agave"
$.info.title
error
info-description-required
API info must have a description
$.info
error
info-version-required
API version must be present
$.info
error
openapi-version-3
OpenAPI version must be 3.x
$
error
servers-defined
Servers must be defined
$
error
servers-https
All server URLs must use HTTPS
$.servers[*].url
warn
servers-description
Server entries should have descriptions
$.servers[*]
warn
paths-kebab-case
Path segments should use kebab-case
$.paths[*]~
error
paths-no-trailing-slash
Paths must not have trailing slashes
$.paths[*]~
error
operation-summary-required
Every operation must have a summary
$.paths[*][get,post,put,patch,delete]
warn
operation-summary-company-prefix
Operation summaries must start with "Agave"
$.paths[*][get,post,put,patch,delete].summary
warn
operation-description-required
Every operation must have a description
$.paths[*][get,post,put,patch,delete]
error
operation-operationid-required
Every operation must have an operationId
$.paths[*][get,post,put,patch,delete]
warn
operation-operationid-camel-case
OperationIds should use camelCase
$.paths[*][get,post,put,patch,delete].operationId
error
operation-tags-required
Every operation must have at least one tag
$.paths[*][get,post,put,patch,delete]
warn
parameter-description-required
All parameters must have descriptions
$.paths[*][get,post,put,patch,delete].parameters[*]
error
response-description-required
All responses must have descriptions
$.paths[*][get,post,put,patch,delete].responses[*]
warn
response-401-defined
Operations using auth should document 401 responses
$.paths[*][get,post,put,patch,delete].responses
warn
schema-description
Top-level schemas should have descriptions
$.components.schemas[*]
warn
schema-type-defined
Schemas should have a type
$.components.schemas[*]
error
security-schemes-defined
Security schemes must be defined
$.components
error
get-no-request-body
GET operations must not have request bodies
$.paths[*].get
error
no-empty-descriptions
Descriptions must not be empty
$..description