1Forge · API Governance Rules
1Forge API Rules
Spectral linting rules defining API design standards and conventions for 1Forge.
33 Rules
error 11
warn 18
info 4
Rule Categories
oneforge
Rules
warn
oneforge-info-title-prefix
API info.title must begin with "1Forge".
$.info
warn
oneforge-info-description-required
API info.description must be present and at least 80 characters.
$.info
warn
oneforge-info-contact-required
info.contact.email must be present.
$.info.contact
error
oneforge-openapi-version
Use OpenAPI 3.0.x.
$.openapi
error
oneforge-servers-required
At least one server must be defined.
$.servers
error
oneforge-servers-https
All server URLs must use HTTPS.
$.servers[*].url
warn
oneforge-servers-canonical-host
REST server URL must point at api.1forge.com.
$.servers[*].url
warn
oneforge-paths-snake-case
Path segments use snake_case (matches /market_status, /quotes, /convert, /symbols, /quota).
$.paths.*~
error
oneforge-paths-no-trailing-slash
Paths must not end with a trailing slash.
$.paths.*~
error
oneforge-paths-no-query-string
Path keys must not include a query string.
$.paths.*~
error
oneforge-operation-summary-required
Operation summary must be present.
$.paths[*][get,post,put,patch,delete]
warn
oneforge-operation-summary-prefix
Operation summaries must begin with "1Forge".
$.paths[*][get,post,put,patch,delete].summary
warn
oneforge-operation-description-required
Operation description must be present and at least 40 characters.
$.paths[*][get,post,put,patch,delete]
error
oneforge-operation-id-camel-case
operationId must be camelCase.
$.paths[*][get,post,put,patch,delete]
info
oneforge-operation-id-verb-prefix
operationId should begin with a verb (get, list, convert, check).
$.paths[*][get,post,put,patch,delete]
warn
oneforge-operation-tags-required
Operations must declare at least one tag.
$.paths[*][get,post,put,patch,delete]
info
oneforge-operation-microcks-extension
Operations should declare x-microcks-operation for mock-server compatibility.
$.paths[*][get,post,put,patch,delete]
warn
oneforge-tag-description-required
Each global tag must declare a description.
$.tags[*]
info
oneforge-tag-title-case
Tag names should use Title Case (e.g. "Market Status", "Quotes").
$.tags[*].name
warn
oneforge-parameter-description-required
Every parameter must have a description.
$.paths[*][*].parameters[*]
warn
oneforge-parameter-snake-case
Query parameter names use snake_case (matches api_key, pairs, from, to, quantity).
$.paths[*][*].parameters[?(@.in=='query')]
warn
oneforge-parameter-api-key-required
Every operation must accept the api_key query parameter (the only auth method).
$.paths[*][get,post,put,patch,delete]
error
oneforge-response-200-required
Operations must define a 200 response.
$.paths[*][get,post,put,patch,delete].responses
warn
oneforge-response-401-defined
Operations should document the 401 (invalid api_key) response.
$.paths[*][get,post,put,patch,delete].responses
warn
oneforge-response-content-json
200 responses must declare application/json content.
$.paths[*][get,post,put,patch,delete].responses['200'].content
warn
oneforge-response-description-required
Each response must include a description.
$.paths[*][*].responses[*]
error
oneforge-schema-type-required
Top-level component schemas must declare a type.
$.components.schemas[*]
warn
oneforge-schema-title-required
Top-level component schemas must declare a title.
$.components.schemas[*]
warn
oneforge-schema-description-required
Top-level component schemas must declare a description.
$.components.schemas[*]
info
oneforge-schema-property-snake-case
Schema property names should use snake_case (or the documented single-letter quote keys s/p/b/a/t).
$.components.schemas[*].properties.*~
error
oneforge-security-defined
Global security must be declared.
$.security
error
oneforge-security-scheme-apikey
Security scheme must be an apiKey scheme bound to the api_key query parameter.
$.components.securitySchemes[*]
warn
oneforge-only-get-methods
1Forge only exposes GET operations across its REST surface.
$.paths[*]