mit einem Klick
api-design-principles
// REST/HTTP API design: resource naming, status codes, error formats, versioning, pagination.
// REST/HTTP API design: resource naming, status codes, error formats, versioning, pagination.
WCAG accessibility: semantic HTML, ARIA, keyboard nav, contrast, screen readers. For all user-facing interfaces.
Document architectural decisions using ADR format. Use during research when choosing approaches, introducing deps/patterns, or changing arch.
Kubernetes deployment and GitOps patterns: rolling/blue-green/canary strategies, ArgoCD/Flux manifests, K8s secrets management. Supplement to ci-cd-principles.
CI/CD pipeline patterns: stages, Dockerfile, GitHub Actions, artifact management, environment promotion, rollback. Layered by deployment complexity.
Structured code review protocol: inspect against full rule set. Use for audit workflows, code reviews, or when user requests review. Produces findings document with severity tags.
Safe command execution: input sanitization, timeout handling, output capture, error propagation. For spawning processes, shell commands, system calls.
| name | api-design-principles |
| description | REST/HTTP API design: resource naming, status codes, error formats, versioning, pagination. |
| user-invocable | false |
URLs: plural nouns (/api/v1/users), hierarchical (/users/:id/orders), no verbs.
Methods: GET=read (safe, idempotent, cacheable), POST=create, PUT=replace (idempotent), PATCH=partial update (idempotent), DELETE=remove (idempotent).
Versioning: URL path /api/v1/users.
Pagination: default 20, max 100. Cursor (?cursor=abc123) or offset (?page=2&limit=20).
Filter/Sort: ?status=active&role=admin, ?sort=created_at:desc,name:asc, ?q=search+term.
Success: 200 OK (GET/PUT/PATCH), 201 Created (POST), 204 No Content (DELETE).
4xx (client can fix):
5xx (system): 500/502/503 — generic message + correlationId. User: retry later.
{
"data": { /* resource or array */ },
"meta": {
"total": 100,
"page": 1,
"perPage": 20
},
"links": {
"self": "/api/v1/users?page=1",
"next": "/api/v1/users?page=2",
"prev": null
}
}
{
"status": "error",
"code": 400,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid email format",
"details": {
"field": "email",
"reason": "Must be a valid address"
},
"correlationId": "req-1234567890",
"doc_url": "https://..."
}
}