Awesome-omni-skill api-docs-generator
Generates API documentation from code including OpenAPI specs, JSDoc, and Python docstrings. Use when documenting APIs, REST endpoints, or library functions.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/development/api-docs-generator-armanzeroeight" ~/.claude/skills/diegosouzapw-awesome-omni-skill-api-docs-generator-5f002b && rm -rf "$T"
manifest:
skills/development/api-docs-generator-armanzeroeight/SKILL.mdsource content
API Documentation Generator
Quick Start
Generate API docs based on code type:
# OpenAPI from Express routes npx swagger-jsdoc -d swaggerDef.js routes/*.js # JSDoc for JavaScript npx jsdoc src/ -d docs/ # Python docstrings pdoc --html --output-dir docs/ mypackage/
Instructions
Step 1: Identify API Type
Determine documentation approach:
| API Type | Tool | Output |
|---|---|---|
| REST API | OpenAPI/Swagger | Interactive API docs |
| GraphQL | GraphQL Schema | Schema documentation |
| JavaScript Library | JSDoc | HTML reference |
| Python Library | Sphinx/pdoc | HTML reference |
Step 2: Extract Documentation
REST API (OpenAPI):
Scan route files for JSDoc comments:
/** * @swagger * /users: * get: * summary: Get all users * responses: * 200: * description: List of users */ router.get('/users', getUsers);
Generate spec:
npx swagger-jsdoc -d swaggerDef.js routes/*.js -o openapi.json
JavaScript Library (JSDoc):
/** * Adds two numbers together. * @param {number} a - First number * @param {number} b - Second number * @returns {number} Sum of a and b * @example * add(2, 3); // returns 5 */ function add(a, b) { return a + b; }
Python (Docstrings):
def add(a: int, b: int) -> int: """Add two numbers together. Args: a: First number b: Second number Returns: Sum of a and b Example: >>> add(2, 3) 5 """ return a + b
Step 3: Generate Documentation
OpenAPI/Swagger:
# Generate OpenAPI spec npx swagger-jsdoc -d swaggerDef.js routes/*.js -o openapi.json # Serve interactive docs npx swagger-ui-express openapi.json
JSDoc:
npx jsdoc src/ -d docs/ -r
Python Sphinx:
sphinx-apidoc -o docs/source mypackage/ cd docs && make html
Python pdoc:
pdoc --html --output-dir docs/ mypackage/
Step 4: Organize Output
Structure documentation:
docs/ ├── api/ │ ├── openapi.json # OpenAPI specification │ ├── index.html # Interactive API docs │ └── endpoints/ # Endpoint details ├── reference/ │ ├── classes/ # Class documentation │ ├── functions/ # Function documentation │ └── types/ # Type definitions └── guides/ ├── authentication.md # Auth guide └── examples.md # Usage examples
Step 5: Add Examples
Include practical examples:
## Authentication All API requests require authentication: \`\`\`bash curl -H "Authorization: Bearer TOKEN" \\ https://api.example.com/v1/users \`\`\` \`\`\`javascript const response = await fetch('https://api.example.com/v1/users', { headers: { 'Authorization': 'Bearer TOKEN' } }); \`\`\` \`\`\`python import requests response = requests.get( 'https://api.example.com/v1/users', headers={'Authorization': 'Bearer TOKEN'} ) \`\`\`
OpenAPI Specification
Basic Structure
openapi: 3.0.0 info: title: My API version: 1.0.0 description: API description servers: - url: https://api.example.com/v1 paths: /users: get: summary: List users parameters: - name: page in: query schema: type: integer responses: '200': description: Success content: application/json: schema: type: array items: $ref: '#/components/schemas/User' components: schemas: User: type: object properties: id: type: integer name: type: string
Documentation Checklist
- All endpoints documented
- Request/response examples included
- Authentication explained
- Error codes documented
- Rate limiting described
- Code examples in multiple languages
- Interactive API explorer available