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.

Informações da origem

Repositório
sethdford/claude-plugins
Última atividade na origem
17 de outubro de 2025 às 13:24
Idioma detectado do SKILL.md
inglês
Estrelas
3
Forks
1

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
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
Ver no GitHub
Este SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub