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.

Informations de source

Dépôt
sethdford/claude-plugins
Dernière activité de la source
17 octobre 2025 à 13:24
Langue détectée de SKILL.md
anglais
Étoiles
3
Forks
1

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
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
Voir sur GitHub
Ce SKILL.md est tres volumineux, SkillsMP affiche donc ici seulement la premiere section. Voir sur GitHub