Опиши задачу — получи спроектированный API за минуты. Эндпоинты, OpenAPI-спецификация, документация, тесты — агент делает работу API-архитектора
CREATE TABLE categories (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
name VARCHAR(100) NOT NULL,
slug VARCHAR(100) UNIQUE NOT NULL,
parent_id UUID REFERENCES categories(id),
sort_order INT DEFAULT 0,
created_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_categories_parent ON categories(parent_id);
CREATE TABLE products (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
seller_id UUID NOT NULL REFERENCES sellers(id),
category_id UUID NOT NULL REFERENCES categories(id),
title VARCHAR(200) NOT NULL,
slug VARCHAR(200) UNIQUE NOT NULL,
description TEXT,
price DECIMAL(10,2) NOT NULL CHECK (price > 0),
stock INT NOT NULL DEFAULT 0 CHECK (stock >= 0),
rating DECIMAL(2,1) DEFAULT 0,
review_count INT DEFAULT 0,
images JSONB DEFAULT '[]'::jsonb,
is_published BOOLEAN DEFAULT false,
created_at TIMESTAMPTZ DEFAULT NOW(),
updated_at TIMESTAMPTZ DEFAULT NOW()
);
CREATE INDEX idx_products_category ON products(category_id);
CREATE INDEX idx_products_seller ON products(seller_id);
CREATE INDEX idx_products_search ON products USING gin(to_tsvector('russian', title || ' ' || description));curl -X POST https://api.example.com/api/v1/payments \
-H "Authorization: Bearer sk_live_..." \
-d '{"amount": 150000, "currency": "RUB", "description": "Заказ #1234", "return_url": "https://shop.ru/success"}'{"id": "pay_abc123", "status": "pending", "payment_url": "https://pay.example.com/...", "expires_at": "2026-04-05T12:30:00Z"}// legacy-adapter.js — проксирует v1 → v2
// Маппинг старых URL на новые
const legacyRoutes = {
'GET /getUser': 'GET /api/v2/users/:id',
'POST /createOrder': 'POST /api/v2/orders',
'GET /deleteComment': 'DELETE /api/v2/comments/:id',
'GET /v2/product-list':'GET /api/v2/products',
};
// Middleware: перехватывает старые URL
app.use((req, res, next) => {
const key = `${req.method} ${req.path}`;
if (legacyRoutes[key]) {
// Логируем deprecated usage
logger.warn(`Legacy API call: ${key}`);
// Устанавливаем Sunset header
res.set('Sunset', '2026-10-01');
res.set('Deprecation', 'true');
// Трансформируем запрос
req.url = transformUrl(key, req.query);
req.method = legacyRoutes[key].split(' ')[0];
}
next();
});7 дней без ограничений. Настройка за 3 минуты — бот уже ждёт в Telegram.
Попробовать за 490 ₽ — 7 дней ← ИИ агент для программиста