| name | api-architecture |
| version | 2.0.0 |
| description | REST, GraphQL, and hybrid API architecture patterns for building scalable and maintainable APIs |
| sasmp_version | 1.3.0 |
| bonded_agent | 01-api-architect |
| bond_type | PRIMARY_BOND |
| atomic_design | {"single_responsibility":"API paradigm selection and architecture decisions","boundaries":{"includes":["rest_design","graphql_design","hybrid_patterns","api_versioning"],"excludes":["implementation_details","security_policies","database_design"]}} |
| parameter_validation | {"schema":{"type":"object","properties":{"api_style":{"type":"string","enum":["rest","graphql","grpc","hybrid"],"description":"Target API paradigm"},"scale_requirements":{"type":"object","properties":{"requests_per_second":{"type":"number","minimum":0},"latency_target_ms":{"type":"number","minimum":0}}},"use_case":{"type":"string","enum":["public_api","internal_api","partner_api","mobile_backend"]}}}} |
| retry_config | {"enabled":true,"max_attempts":3,"backoff":{"type":"exponential","initial_delay_ms":1000,"max_delay_ms":30000,"multiplier":2}} |
| logging | {"level":"INFO","fields":["skill_name","api_style","decision","duration_ms"]} |
| dependencies | {"skills":["rest","graphql","versioning"],"agents":["01-api-architect"]} |
API Architecture Skill
Purpose
Select and design the optimal API architecture for your use case.
Decision Matrix
┌──────────────────────────────────────────────────────────────────┐
│ API Style Selection │
├──────────────────────────────────────────────────────────────────┤
│ │
│ Use Case → Recommended Style │
│ ───────────────────────────────────────────────────────────── │
│ Public API + Wide adoption → REST (OpenAPI 3.1) │
│ Complex queries + Frontend-heavy → GraphQL │
│ High performance + Internal → gRPC │
│ Mobile + Offline support → REST + GraphQL hybrid │
│ Microservices communication → gRPC / Event-driven │
│ Real-time updates → GraphQL Subscriptions │
│ │
└──────────────────────────────────────────────────────────────────┘
API Comparison
| Aspect | REST | GraphQL | gRPC |
|---|
| Learning curve | Low | Medium | High |
| Flexibility | Low | High | Medium |
| Performance | Good | Good | Excellent |
| Caching | Easy (HTTP) | Complex | Custom |
| Tooling | Excellent | Good | Good |
| Documentation | OpenAPI | SDL | Protobuf |
| Browser support | Native | Native | Limited |
REST Architecture (Richardson Maturity Model)
Level 0: Single endpoint, POST everything
Level 1: Multiple endpoints per resource
Level 2: Proper HTTP methods + status codes ← Target
Level 3: HATEOAS (hypermedia links)
Resource Design
GET /api/v1/users
GET