Skip to content

Commit 7110110

Browse files
committed
new api
1 parent 0110833 commit 7110110

20 files changed

Lines changed: 8748 additions & 473 deletions

docs/api/admin.mdx

Lines changed: 687 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/analytics.mdx

Lines changed: 670 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/auth.mdx

Lines changed: 440 additions & 5 deletions
Large diffs are not rendered by default.

docs/api/cameras.mdx

Lines changed: 509 additions & 241 deletions
Large diffs are not rendered by default.

docs/api/data_sources.mdx

Lines changed: 603 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/feedback.mdx

Lines changed: 526 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/forecasts.mdx

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

docs/api/index.mdx

Lines changed: 127 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,150 @@
11
---
2-
sidebar_position: 2
2+
sidebar_position: 1
33
title: API
44
---
55

6-
import HighlightParam from '@site/src/components/HighlightParam';
6+
# Smart Parking API (v2)
77

8-
# General API (v1.0)
8+
**Базовый URL:** `https://api.parktrack.live`
99

10-
**Base address:**
11-
<HighlightParam>`https://api.parktrack.live`</HighlightParam>
10+
API предоставляет доступ к системе интеллектуального поиска парковок, которая агрегирует данные из различных источников (камеры, внешние API и будущие интеграции) для определения текущей и прогнозируемой занятости парковок.
1211

13-
:::warning Обновление API
14-
17 ноября документация `Cameras`, `Parking Zones` была обновлена, все изменения выделены жёлтым цветом.
15-
:::
12+
---
13+
14+
## Основные принципы
15+
16+
### 1. Модульная архитектура
17+
API разделён на независимые модули:
18+
19+
- Основные сущности (`cameras`, `parking_zones`)
20+
- Данные во времени (`occupancy`, `forecasts`)
21+
- Навигация (`routing`)
22+
- Доступ и авторизация (`auth`, `users`, `subscriptions`, `partners`)
23+
- Интеграции (`data_sources`)
24+
25+
Это позволяет масштабировать систему без ломки существующего функционала.
26+
27+
---
28+
29+
### 2. Обратная совместимость (MVP-first)
30+
Существующие эндпоинты (`cameras`, `parking_zones`) сохраняются, чтобы не ломать текущие интеграции.
31+
32+
Новая функциональность добавляется в отдельных разделах.
1633

17-
## Swagger версия
34+
---
1835

19-
Документация API также доступна в Swagger. Там можно будет поиграться с API и вручную поотправлять запросы, когда API сервер будет готов.
36+
### 3. Разделение данных по времени
37+
В системе явно разделены:
2038

21-
[Открыть документацию в Swagger](https://swagger.parktrack.live)
39+
- **Статические данные** → камеры, зоны
40+
- **Динамические данные** → занятость (история и текущее состояние)
41+
- **Предсказания** → прогнозы
2242

23-
:::info Предупреждение
24-
Swagger может содержать неточности или ошибки, приоритетной считать документацию на этом сайте.
25-
:::
43+
---
2644

27-
## Общие ошибки
45+
### 4. Поддержка нескольких источников данных
46+
Система проектируется с учётом разных источников:
2847

29-
| Код | Тип | Описание |
30-
|---------|--------------------------|-----------------------------------------------------------------------------------|
31-
| **400** | `Bad Request` | Невалидный JSON или неверные типы полей. |
32-
| **401** | `Unauthorized` | Отсутствует или просрочен токен. Укажи `Authorization: Bearer <token>`. |
33-
| **403** | `Forbidden` | У пользователя нет прав создавать камеры. Проверь роли/права API-токена. |
34-
| **415** | `Unsupported Media Type` | Неверный `Content-Type`. Используй `application/json`. |
35-
| **500** | `Internal Server Error` | Необработанная ошибка сервера. Повтори позже; при повторе — обратись в поддержку. |
36-
| **503** | `Service Unavailable` | Сервис временно недоступен/перезапускается. Повтори запрос позднее. |
48+
- Камеры (MVP)
49+
- Парктроники (в будущем)
50+
- Навигационные данные (в будущем)
51+
- Данные об оплатах (в будущем)
3752

38-
Более подробное описание ошибки возвращается в JSON в ключе `error_description`, например:
53+
Каждый источник может иметь разный уровень достоверности.
54+
55+
---
56+
57+
## Формат времени
58+
59+
Все временные значения передаются в формате **UTC ISO 8601**:
60+
61+
```
62+
2025-10-08T09:12:00Z
63+
```
64+
65+
---
66+
67+
## 🔐 Авторизация
68+
69+
Большинство эндпоинтов требуют заголовок:
70+
71+
```
72+
Authorization: Bearer <token>
73+
```
74+
75+
Типы токенов:
76+
- Системный токен
77+
- Пользовательский токен
78+
- Партнёрский токен
79+
80+
---
81+
82+
## ❗ Общие ошибки
83+
84+
| Код | Тип | Описание |
85+
|-----|-----|----------|
86+
| 400 | Bad Request | Невалидный JSON или типы данных |
87+
| 401 | Unauthorized | Отсутствует или неверный токен |
88+
| 403 | Forbidden | Недостаточно прав |
89+
| 404 | Not Found | Ресурс не найден |
90+
| 415 | Unsupported Media Type | Используй `application/json` |
91+
| 422 | Unprocessable Entity | Ошибка валидации |
92+
| 500 | Internal Server Error | Ошибка сервера |
93+
| 503 | Service Unavailable | Сервис временно недоступен |
94+
95+
Пример ответа с ошибкой:
3996

4097
```json
41-
{ "error_description": "Unsupported Media Type: expected application/json" }
98+
{
99+
"error_description": "Unsupported Media Type: expected application/json"
100+
}
42101
```
43102

44-
## Формат данных
103+
---
104+
105+
## 📦 Разделы API
106+
107+
### Основные сущности
108+
- Cameras
109+
- Parking Zones
45110

46-
### Время
111+
### Данные о занятости
112+
- Occupancy (история и текущее состояние)
113+
- Forecasts (прогнозы)
47114

48-
Время передается в UTC в строковом представлении в формате ISO 8601, с постфиксом Z.
115+
### Навигация
116+
- Routing (поиск парковки и построение маршрутов)
49117

50-
Например, `2025-10-08T09:12:00Z`.
118+
### Доступ
119+
- Auth
120+
- Users
121+
- Subscriptions
122+
- Partners
51123

52-
### Опорные точки
124+
### Интеграции
125+
- Data Sources
53126

54-
Для упрощения рендеринга парковочных зон, порядок выбора 4 опорных точек записывается Labeler
55-
при разметке. Пользователю должно показываться сообщение, что отмечать точки нужно по часовой стрелке.
56-
Сохраненный порядок точек должен сохраняться при передаче данных, а также при хранении на сервере.
127+
### Дополнительно
128+
- Feedback
129+
- Admin
130+
- Analytics
131+
- System
132+
133+
---
134+
135+
## 🚀 Версионирование
136+
137+
Текущая версия API: `v1 (MVP+)`
138+
139+
В будущем изменения будут вводиться без ломки существующих эндпоинтов.
140+
141+
---
142+
143+
## 🔮 Планируемые расширения
144+
145+
- ML-прогнозирование занятости парковок
146+
- Выбор оптимальной парковки с учётом ETA
147+
- Реалтайм-мониторинг камер и распознавания
148+
- Интеграция с внешними источниками данных (навигация, каршеринг, оплаты)
149+
150+
---

0 commit comments

Comments
 (0)