Paths are equivalent

Description

Your API contains paths that are equivalent. In practice, these paths are considered to be identical because there is no way of telling them apart.

This can happen, for example, if you have defined same path but with different parameter name for different operations. The parameter name alone does not make the path unique.

The OpenAPI Specification (OAS) states that all paths must be unique.

For more details, see the OpenAPI Specification.

Example

The following is an example of how this issue could look in your API definition. GET and PUT operations have the same path but different parameter:

1paths:
2  "/path/{IDs}":
3    get:
4      description: Get the ID list
5      parameters:
6        name: IDs
7        in: path
8        required: true
9        type: string
10        # ...
11  "/path/{addIDs}":
12    put:
13      description: Add IDs to the ID list
14      parameters:
15        name: addIDs
16        in: path
17        required: true
18        type: string
19        # ...
20

Remediation

Define a single path /path/{parameter} with multiple operations (here GET and PUT):

1"/path/{IDs}":
2  get:
3    description: Get the ID list
4    parameters:
5      name: IDs
6      in: path
7      required: true
8      type: string
9      # ...
10  put:
11    description: Add IDs to the ID list
12    parameters:
13      name: addIDs
14      in: path
15      required: true
16      type: string
17      # ...
18

If you need multiple paths, make sure that all paths are considered unique.


Copyright 42Crunch 2021