Skip to content
Back to skills

Architecture

ASecurity

API design skill - REST, GraphQL, gRPC, documentation

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 8, 2026
developmentapidocumentation

Works with

  • api

Security analysis

A100/100

Pro scans all 9 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add pluginagentmarketplace/custom-plugin-linux --skill architecture --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Architecture?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Architecture
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/pluginagentmarketplace-architecture-custom-plugin-linux/badge)](https://www.skillsdirectory.com/skills/pluginagentmarketplace-architecture-custom-plugin-linux)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: api
description: API design skill - REST, GraphQL, gRPC, documentation
version: "1.0.0"
sasmp_version: "1.3.0"

input_schema:
  type: object
  properties:
    task: { type: string, enum: [design, implement, document, optimize, version] }
    style: { type: string, enum: [rest, graphql, grpc] }
  required: [task]

output_schema:
  type: object
  properties:
    schema: { type: string }
    code: { type: string }
    documentation: { type: string }

retry_config:
  max_attempts: 3
  backoff: exponential

timeout_ms: 30000
---

# API Design Skill

## PURPOSE
API design, implementation, and documentation.

## CORE COMPETENCIES
```
REST:
├── Resource naming
├── HTTP methods
├── Status codes
├── Versioning
├── Pagination
└── HATEOAS

GraphQL:
├── Schema design
├── Queries & Mutations
├── Subscriptions
├── DataLoader
└── Federation

gRPC:
├── Protocol Buffers
├── Streaming
├── Error handling
└── Load balancing
```

## CODE PATTERNS

### REST Design
```yaml
# OpenAPI 3.1
/users:
  get:
    summary: List users
    parameters:
      - name: page
        in: query
        schema: { type: integer, default: 1 }
      - name: limit
        in: query
        schema: { type: integer, default: 20, maximum: 100 }
    responses:
      200:
        description: Success
        content:
          application/json:
            schema:
              type: object
              properties:
                data: { type: array, items: { $ref: '#/components/schemas/User' } }
                meta: { $ref: '#/components/schemas/Pagination' }
```

### GraphQL Schema
```graphql
type Query {
  users(first: Int, after: String): UserConnection!
  user(id: ID!): User
}

type User {
  id: ID!
  email: String!
  posts(first: Int): PostConnection!
}

type UserConnection {
  edges: [UserEdge!]!
  pageInfo: PageInfo!
}
```

## BEST PRACTICES
```
REST:
├── Use nouns for resources
├── HTTP verbs for actions
├── Consistent error format
├── Version in URL or header
└── Rate limiting

GraphQL:
├── Avoid N+1 with DataLoader
├── Limit query depth
├── Paginate connections
└── Use fragments
```

## TROUBLESHOOTING

| Issue | Cause | Solution |
|-------|-------|----------|
| N+1 queries | No batching | Use DataLoader |
| Slow response | Over-fetching | Select only needed fields |
| Breaking change | No versioning | Version your API |

Files in this skill

  • SKILL.md661 B
  • api-SKILL.md2.4 KB
  • architecture-SKILL.md2 KB
  • assets/config.yaml687 B
  • assets/schema.json1.1 KB
  • references/GUIDE.md1.8 KB
  • references/PATTERNS.md1.5 KB
  • scripts/validate.py3.7 KB
  • security-SKILL.md2.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…