CtrlK
BlogDocsLog inGet started
Tessl Logo

jbvc/api-patterns

API design principles and decision-making. REST vs GraphQL vs tRPC selection, response formats, versioning, pagination.

67

Quality

67%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

rest.md

REST Principles

Resource-based API design - nouns not verbs.

Resource Naming Rules

Principles:
├── Use NOUNS, not verbs (resources, not actions)
├── Use PLURAL forms (/users not /user)
├── Use lowercase with hyphens (/user-profiles)
├── Nest for relationships (/users/123/posts)
└── Keep shallow (max 3 levels deep)

HTTP Method Selection

MethodPurposeIdempotent?Body?
GETRead resource(s)YesNo
POSTCreate new resourceNoYes
PUTReplace entire resourceYesYes
PATCHPartial updateNoYes
DELETERemove resourceYesNo

Status Code Selection

SituationCodeWhy
Success (read)200Standard success
Created201New resource created
No content204Success, nothing to return
Bad request400Malformed request
Unauthorized401Missing/invalid auth
Forbidden403Valid auth, no permission
Not found404Resource doesn't exist
Conflict409State conflict (duplicate)
Validation error422Valid syntax, invalid data
Rate limited429Too many requests
Server error500Our fault

api-style.md

auth.md

documentation.md

graphql.md

rate-limiting.md

response.md

rest.md

security-testing.md

SKILL.md

tile.json

trpc.md

versioning.md