# API Patterns

API design principles and decision-making.

- Repository: https://github.com/Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI (510 stars)
- Category: Design
- License: see repository
- Last updated: 2026-06-11
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill api-patterns -g -a claude-code -y`
Codex: `npx skills add Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill api-patterns -g -a codex -y`
Cursor: `npx skills add Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill api-patterns -g -a cursor -y`
Gemini CLI: `npx skills add Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI --skill api-patterns -g -a gemini-cli -y`

## Description

API design principles and decision-making.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# API Patterns

> API design principles and decision-making for 2025.
> **Learn to THINK, not copy fixed patterns.**

## 🎯 Selective Reading Rule

**Read ONLY files relevant to the request!** Check the content map, find what you need.

---

## 📑 Content Map

| File | Description | When to Read |
|------|-------------|--------------|
| `api-style.md` | REST vs GraphQL vs tRPC decision tree | Choosing API type |
| `rest.md` | Resource naming, HTTP methods, status codes | Designing REST API |
| `response.md` | Envelope pattern, error format, pagination | Response structure |
| `graphql.md` | Schema design, when to use, security | Considering GraphQL |
| `trpc.md` | TypeScript monorepo, type safety | TS fullstack projects |
| `versioning.md` | URI/Header/Query versioning | API evolution planning |
| `auth.md` | JWT, OAuth, Passkey, API Keys | Auth pattern selection |
| `rate-limiting.md` | Token bucket, sliding window | API protection |
| `documentation.md` | OpenAPI/Swagger best practices | Documentation |
| `security-testing.md` | OWASP API Top 10, auth/authz testing | Security audits |

---

## 🔗 Related Skills

| Need | Skill |
|------|-------|
| API implementation | `@[skills/backend-development]` |
| Data structure | `@[skills/database-design]` |
| Security details | `@[skills/security-hardening]` |

---

## ✅ Decision Checklist

Before designing an API:

- [ ] **Asked user about API consumers?**
- [ ] **Chosen API style for THIS context?** (REST/GraphQL/tRPC)
- [ ] **Defined consistent response format?**
- [ ] **Planned versioning strategy?**
- [ ] **Considered authentication needs?**
- [ ] **Planned rate limiting?**
- [ ] **Documentation approach defined?**

---

## ❌ Anti-Patterns

**DON'T:**
- Default to REST for everything
- Use verbs in REST endpoints (/getUsers)
- Return inconsistent response formats
- Expose internal errors to clients
- Skip rate limiting

The rest: https://github.com/Dokhacgiakhoa/Agent-Skills-4-Vibe-Coding-CLI/blob/HEAD/.agent/skills/api-patterns/SKILL.md
