Skip to main content

api-documentation-generator

Generate comprehensive API documentation for Confluence from code, OpenAPI specs, or endpoints. Use when documenting REST APIs, GraphQL APIs, or any API endpoints. Creates structured documentation with examples, parameters, responses, and error codes.

소스 정보

저장소
sethdford/claude-plugins
최근 소스 활동
2025년 10월 17일 13:24
감지된 SKILL.md 언어
영어
스타
3
포크
1

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
API Documentation Generator
description
Generate comprehensive API documentation for Confluence from code, OpenAPI specs, or endpoints. Use when documenting REST APIs, GraphQL APIs, or any API endpoints. Creates structured documentation with examples, parameters, responses, and error codes.
allowed-tools
Read, Grep, Bash
# API Documentation Generator Expert assistance for creating comprehensive API documentation in Confluence. ## When to Use This Skill - Documenting new API endpoints - Creating API reference pages - Converting OpenAPI/Swagger specs to Confluence - User mentions: API, endpoints, REST, GraphQL, documentation - After implementing new API features ## API Documentation Structure ### Complete API Page Template ```markdown # [API Name] API ## Overview Brief description of what this API does and its purpose. ## Base URL ``` https://api.example.com/v1 ``` ## Authentication How to authenticate with this API. ## Endpoints ### GET /resource Brief description of what this endpoint does. #### Parameters [Parameter table] #### Request Example [Code block with example] #### Response [Success response example] #### Error Codes [Error table] ## Rate Limiting API rate limit information. ## Changelog Version history and changes. ``` ## Endpoint Documentation ### Standard Sections #### 1. Endpoint Header ```markdown ### POST /api/users Create a new user account ``` #### 2. Description ```markdown Creates a new user account with the provided information. Sends a verification email to the user's address. **Permissions**: Requires `admin` role **Rate Limit**: 10 requests per minute ``` #### 3. Parameters Table ##### Path Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `id` | string | Yes | User ID (UUID format) | | `version` | integer | No | API version (default: 1) | ##### Query Parameters | Parameter | Type | Required | Description | Default | |-----------|------|----------|-------------|---------| | `page` | integer | No | Page number | 1 | | `limit` | integer | No | Items per page | 20 | | `sort` | string | No | Sort field | `created_at` | | `order` | string | No | Sort order (asc/desc) | `desc` | ##### Request Body | Field | Type | Required | Description | Constraints | |-------|------|----------|-------------|-------------| | `email` | string | Yes | User email address | Valid email format | | `username` | string | Yes | Username | 3-20 alphanumeric chars | | `password` | string | Yes | Password | Min 8 chars, 1 uppercase, 1 number | | `full_name` | string | No | Full name | Max 100 chars | | `role` | string | No | User role | One of: user, admin, moderator | #### 4. Request Example **cURL**: ```bash curl -X POST https://api.example.com/v1/users \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_API_KEY" \ -d '{ "email": "user@example.com", "username": "johndoe", "password": "SecurePass123", "full_name": "John Doe", "role": "user" }' ``` **JavaScript (fetch)**: ```javascript const response = await fetch('https://api.example.com/v1/users', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer YOUR_API_KEY' }, body: JSON.stringify({ email: 'user@example.com', username: 'johndoe', password: 'SecurePass123', full_name: 'John Doe', role: 'user' }) }); const data = await response.json(); console.log(data); ``` **Python (requests)**: ```python import requests url = "https://api.example.com/v1/users" headers = { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" } data = { "email": "user@example.com", "username": "johndoe", "password": "SecurePass123", "full_name": "John Doe", "role": "user" } response = requests.post(url, headers=headers, json=data) print(response.json()) ``` #### 5. Response Examples **Success Response (201 Created)**: ```json { "status": "success", "data": { "id": "550e8400-e29b-41d4-a716-446655440000", "email": "user@example.com", "username": "johndoe", "full_name": "John Doe", "role": "user", "email_verified": false, "created_at": "2024-01-15T10:30:00Z", "updated_at": "2024-01-15T10:30:00Z" } } ``` **Response Fields**: | Field | Type | Description | |-------|------|-------------| | `id` | string | Unique user identifier (UUID) | | `email` | string | User's email address | | `username` | string | Username | | `full_name` | string | User's full name | | `role` | string | User's role | | `email_verified` | boolean | Email verification status | | `created_at` | string | Account creation timestamp (ISO 8601) | | `updated_at` | string | Last update timestamp (ISO 8601) | #### 6. Error Responses | Status Code | Error Code | Description | Resolution | |-------------|------------|-------------|------------| | 400 | `INVALID_EMAIL` | Email format is invalid | Provide valid email address | | 400 | `WEAK_PASSWORD` | Password doesn't meet requirements | Use min 8 chars, 1 uppercase, 1 number | | 400 | `USERNAME_TAKEN` | Username already exists | Choose different username | | 401 | `UNAUTHORIZED` | Missing or invalid API key | Include valid Authorization header | | 403 | `FORBIDDEN` | Insufficient permissions | Requires admin role | | 429 | `RATE_LIMIT_EXCEEDED` | Too many requests | Wait before retrying | | 500 | `INTERNAL_ERROR` | Server error | Contact support if persists | **Error Response Format**: ```json { "status": "error", "error": { "code": "USERNAME_TAKEN", "message": "The username 'johndoe' is already in use", "details": { "field": "username", "value": "johndoe" } } } ``` ## Authentication Documentation ### API Key Authentication ```markdown ## Authentication All API requests require authentication using an API key. ### Obtaining an API Key 1. Log in to your account 2. Navigate to Settings > API Keys 3. Click "Generate New Key" 4. Store the key securely (shown only once) ### Using the API Key Include the API key in the `Authorization` header: ``` Authorization: Bearer YOUR_API_KEY ``` **Example**: ```bash curl -H "Authorization: Bearer sk_test_abc123..." \ https://api.example.com/v1/users ``` ### Security Best Practices - Never commit API keys to version control - Rotate keys regularly (every 90 days) - Use environment variables for key storage - Different keys for development/production ``` ### OAuth 2.0 Documentation ```markdown ## Authentication This API uses OAuth 2.0 for authentication. ### Authorization Flow 1. **Redirect user to authorization URL**: ``` https://api.example.com/oauth/authorize? client_id=YOUR_CLIENT_ID& redirect_uri=YOUR_REDIRECT_URI& response_type=code& scope=read write ``` 2. **User authorizes your app** 3. **Receive authorization code**: ``` https://your-redirect-uri?code=AUTH_CODE ``` 4. **Exchange code for access token**: ```bash curl -X POST https://api.example.com/oauth/token \ -d "client_id=YOUR_CLIENT_ID" \ -d "client_secret=YOUR_CLIENT_SECRET" \ -d "code=AUTH_CODE" \ -d "grant_type=authorization_code" ``` 5. **Use access token in requests**: ``` Authorization: Bearer ACCESS_TOKEN ``` ### Scopes | Scope | Description | |-------|-------------| | `read` | Read access to resources | | `write` | Create and update resources | | `delete` | Delete resources | | `admin` | Full administrative access | ``` ## Rate Limiting Documentation ```markdown ## Rate Limiting API requests are rate limited to ensure fair usage. ### Limits | Tier | Requests per minute | Requests per day | |------|-------------------|------------------| | Free | 60 | 10,000 | | Pro | 600 | 100,000 | | Enterprise | Unlimited | Unlimited | ### Rate Limit Headers Each response includes rate limit information: ``` X-RateLimit-Limit: 60 X-RateLimit-Remaining: 45 X-RateLimit-Reset: 1642247400 ``` | Header | Description | |--------|-------------| | `X-RateLimit-Limit` | Total requests allowed in window | | `X-RateLimit-Remaining` | Requests remaining in window | | `X-RateLimit-Reset` | Unix timestamp when limit resets | ### Handling Rate Limits When rate limited, you'll receive a `429 Too Many Requests` response: ```json { "status": "error", "error": { "code": "RATE_LIMIT_EXCEEDED", "message": "API rate limit exceeded", "retry_after": 42 } } ``` **Best practices**: - Monitor `X-RateLimit-Remaining` header - Implement exponential backoff - Cache responses when possible - Use webhooks instead of polling ``` ## Pagination Documentation ```markdown ## Pagination List endpoints return paginated results. ### Request Parameters | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `page` | integer | 1 | Page number (1-indexed) | | `limit` | integer | 20 | Items per page (max 100) | ### Example Request ```bash GET /api/users?page=2&limit=50 ``` ### Response Format
GitHub에서 보기
이 SKILL.md는 매우 커서 SkillsMP가 여기에는 첫 섹션만 미리 보여줍니다. GitHub에서 보기