{"openapi":"3.0.3","info":{"title":"Worm1xStore API","version":"1.0.0","description":"HTTP API маркетплейса TRADEPLACE / Worm1xStore.\n\nБольшая часть приложения работает через Next.js Server Actions (формы логина, объявлений, модерации) — они не являются REST-эндпоинтами и здесь не перечислены.\n\nНиже — все публичные HTTP-методы `/api/*`."},"servers":[{"url":"/","description":"Текущий хост"}],"tags":[{"name":"System","description":"Служебные эндпоинты"},{"name":"Catalog","description":"Справочник предметов"}],"paths":{"/api/health":{"get":{"tags":["System"],"summary":"Проверка здоровья сервиса и БД","operationId":"getHealth","responses":{"200":{"description":"Сервис и база данных доступны","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthOk"},"example":{"ok":true,"service":"worm1xstore","db":"up","ts":"2026-07-13T20:00:00.000Z"}}}},"503":{"description":"База данных недоступна","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthDown"},"example":{"ok":false,"service":"worm1xstore","db":"down"}}}}}}},"/api/items/search":{"get":{"tags":["Catalog"],"summary":"Поиск снастей в справочнике","description":"Используется при создании объявления (автокомплит). Поиск по названию, бренду и подтипу. Минимум 2 символа в `q`, иначе пустой список. Максимум 12 результатов.","operationId":"searchItems","parameters":[{"name":"q","in":"query","required":false,"description":"Строка поиска (от 2 символов)","schema":{"type":"string","minLength":0,"example":"Poseidon"}}],"responses":{"200":{"description":"Список найденных предметов","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ItemSearchResponse"}}}}}}},"/api/openapi":{"get":{"tags":["System"],"summary":"OpenAPI-спецификация (JSON)","operationId":"getOpenApi","responses":{"200":{"description":"Документ OpenAPI 3.0","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"HealthOk":{"type":"object","required":["ok","service","db","ts"],"properties":{"ok":{"type":"boolean","enum":[true]},"service":{"type":"string","example":"worm1xstore"},"db":{"type":"string","enum":["up"]},"ts":{"type":"string","format":"date-time"}}},"HealthDown":{"type":"object","required":["ok","service","db"],"properties":{"ok":{"type":"boolean","enum":[false]},"service":{"type":"string","example":"worm1xstore"},"db":{"type":"string","enum":["down"]}}},"CatalogItem":{"type":"object","required":["id","name","brand","subtype","imagePath","category"],"properties":{"id":{"type":"string","example":"clx..."},"name":{"type":"string","example":"Poseidon Ultra 80-100"},"brand":{"type":"string","nullable":true,"example":null},"subtype":{"type":"string","nullable":true,"example":"Морские"},"imagePath":{"type":"string","nullable":true,"example":"/uploads/catalog/poseidon-ultra-80-100.webp"},"category":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Удилища"}}}}},"ItemSearchResponse":{"type":"object","required":["items"],"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CatalogItem"}}}}}}}