Files
redocly-cli/docs/rules/path-excludes-patterns.md
2022-11-02 06:58:54 -05:00

88 lines
1.9 KiB
Markdown

# path-excludes-patterns
Disallow patterns from paths.
|OAS|Compatibility|
|---|---|
|2.0|✅|
|3.0|✅|
|3.1|✅|
## API design principles
The [`no-http-verbs-in-paths` rule](./no-http-verbs-in-paths.md) is pre-built for a very specific set of patterns.
This rule is the general Swiss army knife version.
If you absolutely know something should not be in the path (for example `foo`), then add the pattern to prevent it.
Ideas for things to prevent in paths besides HTTP verbs include other common CRUD verbs, bad words, and internal code words (food for thought).
Other ideas are around casing (other than kebab-case, which is a common approach and we have [another rule](./paths-kebab-case.md) already prepared for that).
## Configuration
|Option|Type|Description|
|---|---|---|
|severity|string|Possible values: `off`, `warn`, `error`. Default `off` (in `recommended` configuration).
|patterns|[string]|List of patterns to match. For example, `^\/[a-z]`.
An example configuration:
```yaml
rules:
path-excludes-patterns:
severity: error
patterns:
- ^\/[0-9]
```
## Examples
Given this configuration:
```yaml
rules:
path-excludes-patterns:
severity: error
patterns:
- ^\/[0-9]
```
Example of an **incorrect** path:
```yaml
paths:
/1customers/{id}:
post:
parameters:
- name: id
in: path
required: true
```
Example of a **correct** path:
```yaml
paths:
/customers/{id}:
post:
parameters:
- name: id
in: path
required: true
```
## Related rules
- [tag-description](./tag-description.md)
- [operation-description](./operation-description.md)
- [custom rules](./custom-rules.md)
## Resources
- [Rule source](https://github.com/Redocly/redocly-cli/blob/main/packages/core/src/rules/common/parameter-description.ts)
- [Paths docs](https://redocly.com/docs/openapi-visual-reference/paths/)