Flipdish · API Governance Rules
Flipdish — spectral rules rules
Spectral linting rules defining API design standards and conventions for Flipdish.
32 Rules
error 16
warn 16
Published by Flipdish
Served by the provider at https://github.com/flipdishbytes/spectral-rules/blob/a7004f6615c93c9017c310e8e20543b1100cb602/.spectral.yaml; the copy below was fetched from there.
Rule Categories
allowed
authorization
beta
camel
case
delete
error
expand
explicit
json
name
naming
no
operation
plural
post
public
resource
response
simple
unique
uri
url
valid
Rules
error
operation-summary
All operations must have a summary
$.paths[*][*]
error
operation-description
All operations must have a description
$.paths[*][*]
error
error-format
4xx and 5xx responses must include an 'error' object with message and code
$.paths[*][*].responses[400,401,403,404,409,414,429,500].content['application/json'].schema
error
allowed-server-urls
Only Flipdish production domains should be in the server URLs
$.servers[*].url
warn
naming-path-segments
Path segments should be lowerCamelCase
$.paths
error
response-status-codes
Only approved status codes should be used
$.paths[*][*].responses
error
valid-contact-email
The contact email must be help@flipdish.com
$.info.contact.email
warn
beta-description
Beta endpoints must include a warning in the description
$.paths[*][get,post,put,delete]
error
url-pattern-structure
URLs must follow the pattern /{grouping}/orgs/{orgId}/{path-to-resource}
$.paths
error
no-api-in-path
URL paths should not include 'api' in the path
$.paths
warn
plural-resource-collections
Resource collections should use plural names
$.paths
error
allowed-http-methods
Only GET, POST, DELETE methods are allowed
$.paths[*]
error
no-put-patch-methods
PUT and PATCH methods are not allowed
$.paths[*]
error
response-data-wrapper
Successful responses must include a 'data' field
$.paths[*][*].responses[200,201].content['application/json'].schema
error
post-create-status
POST operations that create resources must return 201
$.paths[*].post
warn
delete-no-content-status
DELETE operations should return 204 No Content
$.paths[*].delete
warn
case-insensitive-query-params
Query parameters should be documented as case insensitive
$.paths[*][*].parameters[*]
warn
name-contains-pattern
Simple search endpoints should use 'nameContains' parameter
$.paths[*][get].parameters[*]
warn
no-type-in-field-names
Field names should not include type or format information
$.components.schemas[*].properties
warn
camel-case-field-names
Field names should use camelCase
$.components.schemas[*].properties
warn
public-id-format
Public facing IDs should follow the format [prefix][incrementing integer]
$.components.schemas[*].properties.*
warn
authorization-header
Operations should use FD-Authorization header from Cookie
$.paths[*][*].security
error
no-global-versioning
Global path-based versioning is not allowed
$.paths
warn
simple-version-numbers
Version numbers should be simple (v1, v2) not detailed (v1.0, v2.0)
$.paths
error
json-content-type
Responses should use application/json content type
$.paths[*][*].responses[*].content
warn
explicit-types
Request and response schemas should be explicitly defined
$.paths[*][*]
error
unique-operation-ids
All operations must have unique operationId
$.paths[*][*]
error
operation-tags
All operations must have at least one tag
$.paths[*][*]
warn
response-examples
Responses should include examples
$.paths[*][*].responses[200,201].content['application/json']
warn
uri-length-validation
URLs should not exceed 2083 characters
$.paths
warn
expand-parameter-documentation
Endpoints with expandable resources should document the expand parameter
$.paths[*][get].parameters[*]
warn
resource-state-modeling
APIs should model resource state, not behavior
$.paths[*][*]
Spectral Ruleset
Work with this as data
Every ruleset here is available over the APIs.io API and to AI agents over MCP.