Linter rulesSwagger 2.0paths-sorted

paths-sorted

Since 0.9.0 · fixed by --fix

This rule checks whether the paths of a Swagger 2.0 document are sorted.

Rule Details

Sorted paths make a large document easier to navigate and keep diffs small when paths are added.

The paths-sorted rule walks the entries of the root paths object in the order they appear in the document and reports Paths are not sorted: <path> for every path that is not greater than the previous one. Paths are compared character by character (byte order), so /Pets sorts before /pets and /pets before /pets/{id}.

Configuration

None.

Examples

Good. The paths are sorted.

swagger: '2.0'
info:
  title: Pet Store
  version: 1.0.0
paths:
  /owners:
    get:
      responses:
        '200':
          description: A list of owners.
  /pets:
    get:
      responses:
        '200':
          description: A list of pets.

Bad. /owners is listed after /pets.

swagger: '2.0'
info:
  title: Pet Store
  version: 1.0.0
paths:
  /pets:
    get:
      responses:
        '200':
          description: A list of pets.
  /owners:
    get:
      responses:
        '200':
          description: A list of owners.

Automatic fixes

When invoked with --fix, this rule reorders the entries of the paths object so that the paths are sorted in byte order.

When Not to Use It

You may disable this rule when paths are intentionally grouped in another order, for example by resource or by workflow.

Compatibility

This rule is compatible with Swagger 2.0 documents. OpenAPI 3.x documents are linted by the OpenAPI linter, which has a rule of the same name.

Related rules

Further reading