🎯

api-reference-guide

🎯Skill

from dengineproblem/agents-monorepo

VibeIndex|
What it does

Generates comprehensive, developer-friendly API reference documentation with detailed endpoint descriptions, authentication methods, and practical code examples.

api-reference-guide

Installation

Install skill:
npx skills add https://github.com/dengineproblem/agents-monorepo --skill api-reference-guide
1
AddedJan 27, 2026

Skill Details

SKILL.md

Эксперт по API reference документации. Используй для создания справочников по API, описания endpoints и примеров запросов.

Overview

# API Reference Guide Creator

Эксперт в создании комплексной документации по API, которую разработчики обожают использовать.

Основные принципы

  • Подход "разработчик прежде всего": Пишите с точки зрения того, кто внедряет API
  • Ясность важнее краткости: Предоставляйте достаточно деталей
  • Последовательность: Используйте единообразные паттерны
  • Полнота: Покрывайте все endpoint'ы, параметры, ответы и крайние случаи
  • Тестируемость: Включайте рабочие примеры

Структура справочника

  1. Обзор — Назначение API, базовый URL, стратегия версионирования
  2. Аутентификация — Методы, токены, заголовки, примеры
  3. Endpoint'ы — Сгруппированные по ресурсам
  4. Обработка ошибок — Стандартные коды ошибок и ответы
  5. Ограничения частоты запросов — Лимиты, заголовки
  6. SDK и библиотеки — Доступные клиентские библиотеки
  7. Журнал изменений — История версий

Документация аутентификации

```bash

# API Key Authentication

curl -X GET "https://api.example.com/v1/users" \

-H "Authorization: Bearer YOUR_API_KEY" \

-H "Content-Type: application/json"

```

```javascript

// JavaScript SDK Example

const client = new APIClient({

apiKey: 'your-api-key',

baseURL: 'https://api.example.com/v1'

});

```

Формат документации endpoint'ов

GET /users/{id}

Получить конкретного пользователя по ID.

Параметры:

| Параметр | Тип | Место | Обязательный | Описание |

|----------|-----|-------|--------------|----------|

| id | string | path | да | Уникальный ID пользователя |

| include | string | query | нет | Связанные ресурсы через запятую |

Пример запроса:

```bash

curl -X GET "https://api.example.com/v1/users/12345?include=profile,settings" \

-H "Authorization: Bearer YOUR_API_KEY"

```

Ответ (200 OK):

```json

{

"id": "12345",

"email": "user@example.com",

"created_at": "2023-01-15T10:30:00Z",

"profile": {

"first_name": "John",

"last_name": "Doe"

}

}

```

POST /users

Создать новый аккаунт пользователя.

Тело запроса:

```json

{

"email": "string (обязательный)",

"password": "string (обязательный, минимум 8 символов)",

"profile": {

"first_name": "string (опциональный)",

"last_name": "string (опциональный)"

}

}

```

Ответ (201 Created):

```json

{

"id": "12346",

"email": "newuser@example.com",

"created_at": "2024-01-15T14:30:00Z"

}

```

Документация ошибок

```json

{

"error": {

"code": "VALIDATION_ERROR",

"message": "Invalid request parameters",

"details": [

{

"field": "email",

"message": "Email address is required"

}

],

"request_id": "req_1234567890"

}

}

```

HTTP коды состояния:

| Код | Статус | Описание |

|-----|--------|----------|

| 200 | OK | Успешный запрос |

| 201 | Created | Ресурс создан |

| 400 | Bad Request | Ошибки валидации |

| 401 | Unauthorized | Неверный/отсутствующий токен |

| 403 | Forbidden | Недостаточно прав |

| 404 | Not Found | Ресурс не найден |

| 429 | Too Many Requests | Превышен лимит запросов |

| 500 | Internal Server Error | Ошибка сервера |

Примеры на разных языках

Python

```python

import requests

headers = {

'Authorization': 'Bearer YOUR_API_KEY',

'Content-Type': 'application/json'

}

response = requests.get(

'https://api.example.com/v1/users/12345',

headers=headers

)

print(response.json())

```

Node.js

```javascript

const fetch = require('node-fetch');

const response = await fetch('https://api.example.com/v1/users/12345', {

headers: {

'Authorization': 'Bearer YOUR_API_KEY',

'Content-Type': 'application/json'

}

});

const data = await response.json();

console.log(data);

```

Go

```go

req, _ := http.NewRequest("GET", "https://api.example.com/v1/users/12345", nil)

req.Header.Set("Authorization", "Bearer YOUR_API_KEY")

req.Header.Set("Content-Type", "application/json")

client := &http.Client{}

resp, _ := client.Do(req)

defer resp.Body.Close()

```

Типы данных и схемы

```yaml

User:

type: object

properties:

id:

type: string

description: Unique user identifier

example: "usr_1234567890"

email:

type: string

format: email

description: User's email address

created_at:

type: string

format: date-time

description: ISO 8601 timestamp

status:

type: string

enum: [active, inactive, suspended]

description: Current account status

```

Продвинутые возможности

Фильтрация

```

GET /users?filter[status]=active&filter[role]=admin

```

Пагинация

```

GET /users?page=2&limit=20

Response headers:

X-Total-Count: 150

X-Page: 2

X-Per-Page: 20

Link: ; rel="next"

```

Сортировка

```

GET /users?sort=-created_at,email

```

Минус означает сортировку по убыванию.

Выбор полей

```

GET /users?fields=id,email,created_at

```

Идемпотентность

```bash

curl -X POST "https://api.example.com/v1/payments" \

-H "Authorization: Bearer YOUR_API_KEY" \

-H "Idempotency-Key: unique-request-id-123" \

-d '{"amount": 1000}'

```

Rate Limiting Headers

```

X-RateLimit-Limit: 1000

X-RateLimit-Remaining: 999

X-RateLimit-Reset: 1640995200

```

Лучшие практики

  1. Используйте последовательное именование (snake_case или camelCase)
  2. Включайте реалистичные примеры данных
  3. Показывайте примеры как успешных, так и ошибочных ответов
  4. Документируйте опциональные и обязательные параметры
  5. Включайте информацию об ограничениях частоты
  6. Используйте OpenAPI/Swagger спецификации
  7. Добавляйте уведомления о deprecation
  8. Тестируйте все примеры кода перед публикацией