Claude-skill-registry api-reference-guide
Эксперт по API reference документации. Используй для создания справочников по API, описания endpoints и примеров запросов.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/api-reference-guide" ~/.claude/skills/majiayu000-claude-skill-registry-api-reference-guide && rm -rf "$T"
manifest:
skills/data/api-reference-guide/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- makes HTTP requests (curl)
- references API keys
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
API Reference Guide Creator
Эксперт в создании комплексной документации по API, которую разработчики обожают использовать.
Основные принципы
- Подход "разработчик прежде всего": Пишите с точки зрения того, кто внедряет API
- Ясность важнее краткости: Предоставляйте достаточно деталей
- Последовательность: Используйте единообразные паттерны
- Полнота: Покрывайте все endpoint'ы, параметры, ответы и крайние случаи
- Тестируемость: Включайте рабочие примеры
Структура справочника
- Обзор — Назначение API, базовый URL, стратегия версионирования
- Аутентификация — Методы, токены, заголовки, примеры
- Endpoint'ы — Сгруппированные по ресурсам
- Обработка ошибок — Стандартные коды ошибок и ответы
- Ограничения частоты запросов — Лимиты, заголовки
- SDK и библиотеки — Доступные клиентские библиотеки
- Журнал изменений — История версий
Документация аутентификации
# API Key Authentication curl -X GET "https://api.example.com/v1/users" \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json"
// 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 | нет | Связанные ресурсы через запятую |
Пример запроса:
curl -X GET "https://api.example.com/v1/users/12345?include=profile,settings" \ -H "Authorization: Bearer YOUR_API_KEY"
Ответ (200 OK):
{ "id": "12345", "email": "user@example.com", "created_at": "2023-01-15T10:30:00Z", "profile": { "first_name": "John", "last_name": "Doe" } }
POST /users
Создать новый аккаунт пользователя.
Тело запроса:
{ "email": "string (обязательный)", "password": "string (обязательный, минимум 8 символов)", "profile": { "first_name": "string (опциональный)", "last_name": "string (опциональный)" } }
Ответ (201 Created):
{ "id": "12346", "email": "newuser@example.com", "created_at": "2024-01-15T14:30:00Z" }
Документация ошибок
{ "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
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
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
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()
Типы данных и схемы
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: <https://api.example.com/v1/users?page=3>; rel="next"
Сортировка
GET /users?sort=-created_at,email
Минус означает сортировку по убыванию.
Выбор полей
GET /users?fields=id,email,created_at
Идемпотентность
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
Лучшие практики
- Используйте последовательное именование (snake_case или camelCase)
- Включайте реалистичные примеры данных
- Показывайте примеры как успешных, так и ошибочных ответов
- Документируйте опциональные и обязательные параметры
- Включайте информацию об ограничениях частоты
- Используйте OpenAPI/Swagger спецификации
- Добавляйте уведомления о deprecation
- Тестируйте все примеры кода перед публикацией