04Документация
API-документация
OpenAPI/Swagger, описание endpoints, примеры запросов и ответов, ошибки.
Напиши документацию для API {{api}}.
Формат: OpenAPI 3.x — стандарт.
Преимущества:
- Машиночитаемая
- Авто-генерация SDK
- Авто-генерация interactive docs (Swagger UI, Stoplight, Scalar)
- Auto-validation на сервере
Структура файла
openapi: 3.1.0
info:
title: My API
version: 1.0.0
description: |
Краткое описание что это и для кого.
contact:
name: API Team
email: api@example.com
servers:
- url: https://api.example.com/v1
description: Production
- url: https://api-staging.example.com/v1
description: Staging
security:
- bearerAuth: []
paths:
/users:
get:
summary: List users
description: |
Returns a paginated list of users.
operationId: listUsers
tags: [Users]
parameters:
- name: cursor
in: query
schema: { type: string }
- name: limit
in: query
schema: { type: integer, default: 20, maximum: 100 }
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/UserListResponse'
examples:
default:
value:
data:
- id: "u_abc123"
email: "alice@example.com"
created_at: "2025-01-15T10:00:00Z"
meta:
next_cursor: "u_xyz789"
'401': { $ref: '#/components/responses/Unauthorized' }
'429': { $ref: '#/components/responses/RateLimitExceeded' }
components:
schemas:
User:
type: object
required: [id, email, created_at]
properties:
id:
type: string
example: "u_abc123"
email:
type: string
format: email
created_at:
type: string
format: date-time
responses:
Unauthorized:
description: Missing or invalid auth token
content:
application/json:
schema: { $ref: '#/components/schemas/Error' }
securitySchemes:
bearerAuth:
type: http
scheme: bearer
Что обязательно для каждого endpoint
- summary — одна строка
- description — что делает, когда использовать
- parameters — все query/path/header параметры с типами
- request body — если POST/PATCH, с примером
- responses — успех + все возможные ошибки
- examples — реалистичные значения, не "string"
- operationId — уникальный, для SDK генерации
Описание ошибок (общее для всех endpoints)
Error:
type: object
required: [error]
properties:
error:
type: object
required: [code, message]
properties:
code:
type: string
enum:
- invalid_request
- unauthorized
- forbidden
- not_found
- rate_limited
- internal_error
message: { type: string }
fields:
type: object
description: For validation errors — per-field details
Документация поверх OpenAPI
OpenAPI — это spec. Дополнительно нужны:
-
Getting started
- Регистрация
- Получение API key
- Первый запрос (curl)
-
Concepts
- Объяснение домена
- Связи между ресурсами
- Пагинация
- Идемпотентность
- Webhooks
-
Authentication
- Как получить токен
- Срок жизни
- Refresh
-
Rate limits
- Лимиты per tier
- Что возвращается при превышении
- Best practices для обработки
-
Recipes / Cookbook
- Типовые сценарии end-to-end
- С кодом на популярных языках
-
Changelog
- Что изменилось, когда
- Breaking changes выделены
- Deprecation notices
Принципы
- Spec — источник правды. Код генерируется из spec, не наоборот
- Примеры реалистичные.
"name": "Acme Inc."лучше"name": "string" - Описывай что произойдёт, не как реализовано
- Документируй ошибки наравне с успехом
Анти-паттерны
- ❌
type: stringбез example - ❌ Описание endpoint'а одной строкой "Returns users"
- ❌ Документ показывает только happy path, без ошибок
- ❌ Документация устарела относительно реального API
- ❌ Отдельные docs для каждой версии разбросаны
Инструменты
- Spec editor: Stoplight Studio, Swagger Editor
- Docs renderer: Scalar (рекомендую), Redocly, Swagger UI
- SDK generation: OpenAPI Generator, Speakeasy
- Validation: spectral, openapi-cli
Похожие промты
start / glossary
Что такое API простыми словами + примеры
Все говорят «вызови API», «у этого сервиса есть API» — а что это? Объясним через ресторан и официанта. Плюс реальный запрос.
beginnerstartglossary
Открыть
Начальный15 мин
site / development
Интеграция стороннего сервиса
План подключения сервиса (Stripe, Supabase, etc.) с учётом ошибок, секретов и тестового режима.
integrationapithird-party
Открыть
Средний30-60 мин
site / development
Проектирование REST/RPC API
Ресурсы, эндпойнты, контракты, версионирование, ошибки, идемпотентность, rate limits.
apidesignrest
Открыть
Продвинутый30-60 мин