api-designer

charon-fan/agent-playbook · updated Apr 8, 2026

$npx skills add https://github.com/charon-fan/agent-playbook --skill api-designer
0 commentsdiscussion
summary

Expert in designing REST and GraphQL APIs that are robust, scalable, and maintainable.

skill.md

API Designer

Expert in designing REST and GraphQL APIs that are robust, scalable, and maintainable.

When This Skill Activates

Activates when you:

  • Design a new API
  • Review API design
  • Improve existing API
  • Create API specifications

REST API Design Principles

1. Resource-Oriented Design

Good:

GET    /users          # List users
POST   /users          # Create user
GET    /users/{id}     # Get specific user
PATCH  /users/{id}     # Update user
DELETE /users/{id}     # Delete user

Avoid:

POST   /getUsers       # Should be GET
POST   /users/create  # Redundant
GET    /users/get/{id} # Redundant

2. HTTP Methods

Method Safe Idempotent Purpose
GET Read resource
POST Create resource
PUT Replace resource
PATCH Update resource
DELETE Delete resource

3. Status Codes

Code Meaning Usage
200 OK Successful GET, PATCH, DELETE
201 Created Successful POST
204 No Content Successful DELETE with no body
400 Bad Request Invalid input
401 Unauthorized Missing or invalid auth
403 Forbidden Authenticated but not authorized
404 Not Found Resource doesn't exist
409 Conflict Resource already exists
422 Unprocessable Valid syntax but semantic errors
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error

4. Naming Conventions

  • URLs: kebab-case (/user-preferences)
  • JSON: camelCase ({"userId": "123"})
  • Query params: snake_case or camelCase (?page_size=10)

5. Pagination

GET /users?page=1&page_size=20

Response:
{
  "data": [...],
  "pagination": {
    "page": 1,
    "page_size": 20,
    "total": 100,
    "total_pages": 5
  }
}

6. Filtering and Sorting

GET /users?status=active&sort=-created_at,name

# -created_at = descending
# name = ascending

GraphQL API Design

Schema Design

type Query {
  user(id: ID!): User
  users(limit: Int, offset: Int): UserConnection!
}

type Mutation {
  createUser(input: CreateUserInput!): CreateUserPayload!
  updateUser(id: ID!, input: UpdateUserInput!): UpdateUserPayload!
}

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

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

type UserEdge {
  node: User!
  cursor: String!
}

type PageInfo {
  hasNextPage: Boolean!
  hasPreviousPage: Boolean!
  startCursor: String
  endCursor: String
}

Best Practices

  • Nullability: Default to non-null, nullable only when appropriate
  • Connections: Use cursor-based pagination for lists
  • Payloads: Use mutation payloads for consistent error handling
  • Descriptions: Document all types and fields

API Versioning

Approaches

URL Versioning (Recommended):

/api/v1/users
/api/v2/users

Header Versioning:

GET /users
Accept: application/vnd.myapi.v2+json

Versioning Guidelines

  • Start with v1
  • Maintain backwards compatibility when possible
  • Deprecate old versions with notice
  • Document breaking changes

Authentication & Authorization

Authentication Methods

  1. JWT Bearer Token
Authorization: Bearer <token>
  1. API Key
X-API-Key: <key>
  1. OAuth 2.0
Authorization: Bearer <access_token>

Authorization

  • Use roles/permissions
  • Document required permissions per endpoint
  • Return 403 for authorization failures

Rate Limiting

HTTP/1.1 200 OK
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1631234567

Recommended limits:

  • Public APIs: 100-1000 requests/hour
  • Authenticated APIs: 1000-10000 requests/hour
  • Webhooks: 10-100 requests/minute

Documentation Requirements

  • All endpoints documented
  • Request/response examples
  • Authentication requirements
  • Error response formats
  • Rate limits
  • SDK examples (if available)

Scripts

Generate API scaffold:

python scripts/generate_api.py <resource-name>

Validate API design:

python scripts/validate_api.py openapi.yaml

References

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.761 reviews
  • Aanya Zhang· Dec 28, 2024

    api-designer has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Min Thomas· Dec 28, 2024

    api-designer fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Ganesh Mohane· Dec 24, 2024

    We added api-designer from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Ren Bansal· Dec 24, 2024

    We added api-designer from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.

  • Sofia Shah· Dec 20, 2024

    api-designer fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Ren Anderson· Dec 16, 2024

    Useful defaults in api-designer — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Noor Harris· Dec 4, 2024

    Useful defaults in api-designer — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Sofia Sharma· Nov 23, 2024

    Registry listing for api-designer matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Kwame Garcia· Nov 19, 2024

    Solid pick for teams standardizing on skills: api-designer is focused, and the summary matches what you get after install.

  • Noor Singh· Nov 19, 2024

    I recommend api-designer for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

showing 1-10 of 61

1 / 7