# harvested from https://github.com/apiglue/talks/blob/3b4fb169d32eac883f17ae215a73995488750eb4/api-design/rulesets/api-design-standards-ruleset-extended.json on 2026-10-09 — a Spectral ruleset published in the provider's own GitHub repository (apiglue/talks); found by GitHub code search, fetched verbatim and converted from JSON to YAML x-method: harvested x-stamped: 2026-10-09 x-source-url: https://github.com/apiglue/talks/blob/3b4fb169d32eac883f17ae215a73995488750eb4/api-design/rulesets/api-design-standards-ruleset-extended.json extends: - - spectral:oas - all rules: ruleset-version: description: RESTful API standards ruleset version 1.0.0 (json version) documentationUrl: https://github.com/apiglue/talks severity: hint given: $ then: function: falsy RESTFUL-STD-1.1-NAMING-FUNDAMENTALS-API-NAME: severity: error message: 1.1 - API name must be descriptive and only contain alphanumeric characters documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#11-api-name given: $.info.title then: - field: '@key' function: pattern functionOptions: match: ^[a-zA-Z0-9]+[a-zA-Z0-9 ]*$ RESTFUL-STD-1.2-ENUM-UPPER-SNAKE-CASE: severity: error message: 1.2 - ENUM and x-extensible-enum values must user UPPER_SNAKE_CASE formatting documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#12-enum-values-must-be-upper-snake-case given: - $.components.schemas.*..enum[*] - $.components.*..x-extensible-enum[*] - $.paths.*.*..schema..enum[*] - $.paths.*.*..schema..x-extensible-enum[*] then: - function: pattern functionOptions: match: ^[A-Z][A-Z_0-9]*$ RESTFUL-STD-2.1.1-CONSISTENCY-FUNDAMENTALS-URI-PARAMS: severity: error message: 2.1.1 - URI parameters must be formatted as lower camel case documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#211---uri-parameters given: $.paths..parameters[?(@.in=='path')].name then: function: casing functionOptions: type: camel RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-PATH-PARAMS: severity: error message: 2.1.2 - Path parameters must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: $.paths..parameters[?(@.in=='path')] then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-QUERY-PARAMS: severity: error message: 2.1.2 - Query parameters must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: $.paths..parameters[?(@.in=='query')] then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-REQUEST-HEADERS: severity: error message: Request headers must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: $.paths..parameters[?(@.in=='header')] then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-RESPONSE-HEADERS: severity: error message: 2.1.2 - Response headers must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: $.paths..responses..headers then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-REQUEST-BODY: severity: error message: 2.1.2 -Request body must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: - $.paths[*].*.requestBody - $.components.requestBodies.* then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-RESPONSE-BODY: severity: error message: 2.1.2 - Response body must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: - $.paths[*]..responses.* then: - field: description function: truthy RESTFUL-STD-2.1.2-CONSISTENCY-FUNDAMENTALS-DESCRIPTION-COOKIES: severity: error message: 2.1.2 - Cookies must have a description documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help/standards.md#221---descriptions given: $.paths..responses..cookies then: - field: description function: truthy RESTFUL-STD-2.3.1-CONSISTENCY-FUNDAMENTALS-INTEGER-MAX: severity: error message: 2.3.1 - Integer properties must have a maximum value documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help-of-llms/src/standards.md#231-integer-data-type-lower-and-upper-limits given: $.paths..parameters[?(@.schema.type=='integer')].schema then: - field: maximum function: truthy RESTFUL-STD-2.3.1-CONSISTENCY-FUNDAMENTALS-INTEGER-MIN: severity: error message: 2.3.1 - Integer properties must have a minimum value documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help-of-llms/src/standards.md#231-integer-data-type-lower-and-upper-limits given: $.paths..parameters[?(@.schema.type=='integer')].schema then: - field: minimum function: truthy RESTFUL-STD-2.3.2-CONSISTENCY-FUNDAMENTALS-STRING-MAXLENGTH: severity: error message: 2.3.2 - String properties must have a maxLength documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help-of-llms/src/standards.md#232-string-data-type-lower-and-upper-limits given: $.paths..parameters[?(@.schema.type=='string')].schema then: - field: maxLength function: truthy RESTFUL-STD-2.3.2-CONSISTENCY-FUNDAMENTALS-STRING-MINLENGTH: severity: error message: 2.3.2 - String properties must have a minLength documentationUrl: https://github.com/apiglue/talks/blob/master/api-design/improving-api-design-with-the-help-of-llms/src/standards.md#232-string-data-type-lower-and-upper-limits given: $.paths..parameters[?(@.schema.type=='string')].schema then: - field: minLength function: truthy