| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- // API Documentation
- export const API_DOCS_MD = String.raw`
- # REST API Documentation
- ## 🔐 Authentication
- All API requests require authentication using **Bearer tokens**. Include your API key in the Authorization header:
- ${'```'}http
- GET /api/v1/users
- Host: api.example.com
- Authorization: Bearer YOUR_API_KEY
- Content-Type: application/json
- ${'```'}
- ## 📍 Endpoints
- ### Users API
- #### **GET** /api/v1/users
- Retrieve a paginated list of users.
- **Query Parameters:**
- | Parameter | Type | Default | Description |
- |-----------|------|---------|-------------|
- | page | integer | 1 | Page number |
- | limit | integer | 20 | Items per page |
- | sort | string | "created_at" | Sort field |
- | order | string | "desc" | Sort order |
- **Response:** 200 OK
- ${'```'}json
- {
- "data": [
- {
- "id": "usr_1234567890",
- "email": "user@example.com",
- "name": "John Doe",
- "role": "admin",
- "created_at": "2024-01-15T10:30:00Z"
- }
- ],
- "pagination": {
- "page": 1,
- "limit": 20,
- "total": 156,
- "pages": 8
- }
- }
- ${'```'}
- #### **POST** /api/v1/users
- Create a new user account.
- **Request Body:**
- ${'```'}json
- {
- "email": "newuser@example.com",
- "password": "SecurePassword123!",
- "name": "Jane Smith",
- "role": "user"
- }
- ${'```'}
- **Response:** 201 Created
- ${'```'}json
- {
- "id": "usr_9876543210",
- "email": "newuser@example.com",
- "name": "Jane Smith",
- "role": "user",
- "created_at": "2024-01-21T09:15:00Z"
- }
- ${'```'}
- ### Error Responses
- The API returns errors in a consistent format:
- ${'```'}json
- {
- "error": {
- "code": "VALIDATION_ERROR",
- "message": "Invalid request parameters",
- "details": [
- {
- "field": "email",
- "message": "Email format is invalid"
- }
- ]
- }
- }
- ${'```'}
- ### Rate Limiting
- | Tier | Requests/Hour | Burst |
- |------|--------------|-------|
- | **Free** | 1,000 | 100 |
- | **Pro** | 10,000 | 500 |
- | **Enterprise** | Unlimited | - |
- **Headers:**
- - X-RateLimit-Limit
- - X-RateLimit-Remaining
- - X-RateLimit-Reset
- ### Webhooks
- Configure webhooks to receive real-time events:
- ${'```'}javascript
- // Webhook payload
- {
- "event": "user.created",
- "timestamp": "2024-01-21T09:15:00Z",
- "data": {
- "id": "usr_9876543210",
- "email": "newuser@example.com"
- },
- "signature": "sha256=abcd1234..."
- }
- ${'```'}
- ### SDK Examples
- **JavaScript/TypeScript:**
- ${'```'}typescript
- import { ApiClient } from '@example/api-sdk';
- const client = new ApiClient({
- apiKey: process.env.API_KEY
- });
- const users = await client.users.list({
- page: 1,
- limit: 20
- });
- ${'```'}
- **Python:**
- ${'```'}python
- from example_api import Client
- client = Client(api_key=os.environ['API_KEY'])
- users = client.users.list(page=1, limit=20)
- ${'```'}
- ---
- 📚 [Full API Reference](https://api.example.com/docs) | 💬 [Support](https://support.example.com)
- `;
|