You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The comprehensive profile provides 100% category coverage synthesized from Microsoft REST, Microsoft Graph, Zalando, Google Cloud, Azure, and PayPal guidelines.
4
+
5
+
## Overview
6
+
7
+
| Property | Value |
8
+
|----------|-------|
9
+
| Name |`comprehensive`|
10
+
| Version | 1.0.0 |
11
+
| Rules | 88 |
12
+
| Categories | 26 |
13
+
| Focus | Full coverage across all API design areas |
14
+
15
+
## Philosophy
16
+
17
+
The comprehensive profile emphasizes:
18
+
19
+
-**Complete Coverage** - Rules for every API design category
20
+
-**Industry Synthesis** - Best practices from major API providers
21
+
-**Balanced Strictness** - Mix of error, warn, and info severities
22
+
-**Educational** - Learn API design by understanding all categories
23
+
24
+
## Categories
25
+
26
+
| Category | Description |
27
+
|----------|-------------|
28
+
| general | OpenAPI specification requirements |
29
+
| naming | Property and parameter naming conventions |
30
+
| urls | URL structure and path design |
31
+
| http-methods | HTTP method semantics |
32
+
| http-status | Status code usage |
33
+
| request-response | Request/response patterns |
34
+
| headers | HTTP header conventions |
35
+
| errors | Error response format |
36
+
| pagination | Collection pagination patterns |
37
+
| filtering | Query parameter filtering |
38
+
| versioning | API versioning strategy |
39
+
| compatibility | Breaking change prevention |
40
+
| deprecation | Deprecation patterns |
41
+
| security | Authentication and authorization |
42
+
| documentation | API documentation requirements |
43
+
| json | JSON formatting conventions |
44
+
| schema | Schema design patterns |
45
+
| collections | Collection resource patterns |
46
+
| long-running | Async operation patterns |
47
+
| conditional | Conditional request handling |
48
+
| performance | Performance optimization |
49
+
| hypermedia | HATEOAS patterns |
50
+
| batch | Batch operation patterns |
51
+
| events | Event/webhook patterns |
52
+
| actions | Non-CRUD action patterns |
53
+
| throttling | Rate limiting patterns |
54
+
55
+
## Key Rules
56
+
57
+
### General
58
+
59
+
| ID | Title | Severity |
60
+
|----|-------|----------|
61
+
| GEN-001 | Provide OpenAPI specification | error |
62
+
| GEN-002 | Provide API info | error |
63
+
| GEN-003 | Use semantic versioning | warn |
64
+
65
+
### Naming
66
+
67
+
| ID | Title | Severity |
68
+
|----|-------|----------|
69
+
| NAME-001 | Use camelCase for properties | error |
70
+
| NAME-002 | Use plural nouns for collections | error |
71
+
72
+
### HTTP Methods
73
+
74
+
| ID | Title | Severity |
75
+
|----|-------|----------|
76
+
| HTTP-001 | GET must be safe and idempotent | error |
77
+
| HTTP-002 | PUT must be idempotent | error |
78
+
| HTTP-003 | DELETE must be idempotent | error |
79
+
80
+
### Errors
81
+
82
+
| ID | Title | Severity |
83
+
|----|-------|----------|
84
+
| ERR-001 | Define standard error schema | error |
85
+
| ERR-002 | Include error code in responses | warn |
86
+
| ERR-003 | Provide actionable error messages | info |
The default profile provides common REST API best practices applicable to most API projects.
3
+
The default profile is an industry-leading API style guide optimized for SDK generation with tools like ogen and openapi-generator. It synthesizes best practices from Stripe, GitHub, Microsoft, and Zalando.
4
4
5
5
## Overview
6
6
7
7
| Property | Value |
8
8
|----------|-------|
9
9
| Name |`default`|
10
-
| Version | 1.0.0 |
11
-
| Rules | 29 |
12
-
| Focus | General REST API design |
10
+
| Version | 2.3.0 |
11
+
| Rules | 106 |
12
+
| Categories | 27 |
13
+
| Focus | SDK-optimized API design |
13
14
14
-
## Categories
15
+
## Philosophy
15
16
16
-
| Category | Rules | Description |
17
-
|----------|-------|-------------|
18
-
| URI Design | 5 | URL structure and naming |
19
-
| HTTP Methods | 5 | Proper HTTP method usage |
20
-
| Naming | 4 | Property and parameter naming |
21
-
| Errors | 3 | Error response format |
22
-
| Responses | 3 | Response structure |
23
-
| Documentation | 5 | API documentation |
24
-
| Security | 4 | API security |
17
+
The default profile emphasizes:
25
18
26
-
## Key Rules
19
+
-**SDK Generation** - Clean generated code with discriminated unions, named schemas, explicit nullability
20
+
-**Consistency** - Uniform patterns for operationIds, error handling, pagination
21
+
-**Multi-tenancy** - Support for `~` alias patterns for current user/org context
22
+
-**Modern Standards** - RFC 9457 Problem Details, OpenAPI 3.1
27
23
28
-
### URI Design
24
+
##Categories
29
25
30
-
| ID | Title | Severity |
31
-
|----|-------|----------|
32
-
| URI-001 | Use plural resource names | error |
33
-
| URI-002 | Use kebab-case for path segments | error |
34
-
| URI-003 | Avoid verbs in paths | warn |
35
-
| URI-004 | Use path parameters for resource identifiers | warn |
36
-
| URI-005 | Limit path nesting depth | warn |
26
+
| Category | Description |
27
+
|----------|-------------|
28
+
| general | OpenAPI specification requirements |
29
+
| naming | Property and parameter naming conventions |
30
+
| urls | URL structure and path design |
31
+
| http-methods | HTTP method semantics |
32
+
| http-status | Status code usage |
33
+
| request-response | Request/response patterns |
34
+
| headers | HTTP header conventions |
35
+
| errors | Error response format (RFC 9457) |
36
+
| pagination | Collection pagination patterns |
37
+
| filtering | Query parameter filtering |
38
+
| versioning | API versioning strategy |
39
+
| compatibility | Breaking change prevention |
40
+
| deprecation | Deprecation patterns |
41
+
| security | Authentication and authorization |
42
+
| documentation | API documentation requirements |
43
+
| json | JSON formatting conventions |
44
+
| schema | Schema design patterns |
45
+
| collections | Collection resource patterns |
46
+
| long-running | Async operation patterns |
47
+
| conditional | Conditional request handling |
48
+
| performance | Performance optimization |
49
+
| hypermedia | HATEOAS patterns |
50
+
| batch | Batch operation patterns |
51
+
| events | Event/webhook patterns |
52
+
| actions | Non-CRUD action patterns |
53
+
| multi-tenancy | Multi-tenant API patterns |
54
+
| throttling | Rate limiting patterns |
55
+
56
+
## Key Rules
37
57
38
-
### HTTP Methods
58
+
### General (PO-001)
39
59
40
60
| ID | Title | Severity |
41
61
|----|-------|----------|
42
-
| HTTP-001 | GET requests must not have request body | error |
43
-
| HTTP-002 | DELETE requests should not have request body | warn |
44
-
| HTTP-003 | POST should return 201 for resource creation | warn |
45
-
| HTTP-004 | Use PATCH for partial updates | info |
46
-
| HTTP-005 | Operations must have unique operationId | error |
62
+
| PO-001 | Provide OpenAPI 3.1 specification | error |
47
63
48
-
### Naming Conventions
64
+
### Naming (PO-002)
49
65
50
66
| ID | Title | Severity |
51
67
|----|-------|----------|
52
-
| NAMING-001 | Use camelCase for JSON properties | error |
53
-
| NAMING-002 | Use camelCase for query parameters | warn |
54
-
| NAMING-003 | Boolean properties should use is/has/can prefix | info |
55
-
| NAMING-004 | Use consistent date/time property naming | info |
68
+
| PO-002 | Use camelCase for property names | error |
0 commit comments