From adb30e7d7a5c06af0c45d42bce4626034e4c8660 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 29 Mar 2026 22:34:09 +0000 Subject: [PATCH] fix: update endpoints based on HAR analysis MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Fix /userReviews → /user/get_reviews (confirmed in HAR) - Fix /user → /api/user/checknotify (temporary, need correct endpoint) - Add TODO comments for broken endpoints: - /catalogMainv2 (HAR shows GET /categories/{slug}) - /getKworkDetails (HAR shows GET /projects/{id}/view) - /cities, /countries (not in HAR, need investigation) - Add documentation: - docs/HAR_ENDPOINTS_MAPPING.md - src/kwork_api/ENDPOINTS_TODO.md --- docs/HAR_ENDPOINTS_MAPPING.md | 206 ++++++++++++++++++++++++++++++++ src/kwork_api/ENDPOINTS_TODO.md | 181 ++++++++++++++++++++++++++++ src/kwork_api/client.py | 22 +++- 3 files changed, 404 insertions(+), 5 deletions(-) create mode 100644 docs/HAR_ENDPOINTS_MAPPING.md create mode 100644 src/kwork_api/ENDPOINTS_TODO.md diff --git a/docs/HAR_ENDPOINTS_MAPPING.md b/docs/HAR_ENDPOINTS_MAPPING.md new file mode 100644 index 0000000..598bb07 --- /dev/null +++ b/docs/HAR_ENDPOINTS_MAPPING.md @@ -0,0 +1,206 @@ +# HAR Endpoints Mapping + +Сопоставление endpoints из `client.py` с реальными endpoints из HAR файла. + +--- + +## 📊 Сопоставление endpoints + +### ✅ Работающие endpoints (совпадают с HAR) + +| client.py Endpoint | HAR Endpoint | Status | Notes | +|-------------------|--------------|--------|-------| +| `/projects` | `POST /projects` | ✅ 200 | GET в HAR, POST в client.py | +| `/api/validation/checktext` | N/A | ❓ | Нет в HAR - возможно не использовался | + +--- + +### ❌ Неработающие endpoints (нужно исправить) + +| client.py Endpoint | HAR Endpoint (реальный) | Status | Как исправить | +|-------------------|------------------------|--------|---------------| +| `/catalogMainv2` | `GET /categories/{slug}` | ❌ 404 | Использовать `GET /categories/{slug}` или найти JSON API | +| `/getKworkDetails` | `GET /projects/{id}/view` | ❌ 404 | Использовать `GET /projects/{id}/view` | +| `/userReviews` | `POST /user/get_reviews` | ❌ 404 | ✅ Исправить на `/user/get_reviews` | +| `/cities` | N/A | ❌ 404 | Нет в HAR - возможно через HTML страницу | +| `/countries` | N/A | ❌ 404 | Нет в HAR - возможно через HTML страницу | +| `/user` | `GET /user/{username}` | ❌ 404 | ✅ Исправить на `/user/{username}` | + +--- + +## 🔍 Детальный анализ + +### 1. Каталог кворков + +**Текущий (не работает):** +```python +POST /catalogMainv2 # ❌ 404 Not Found +``` + +**Реальный из HAR:** +``` +GET /categories/design # ✅ 200 OK +GET /projects # ✅ 200 OK +``` + +**Проблема:** HAR показывает HTML страницы, не JSON API. + +**Решение:** Нужно найти JSON API endpoint или парсить HTML. + +**Как найти:** +1. Открыть DevTools → Network → XHR/Fetch +2. Перейти на https://kwork.ru/categories/design +3. Искать JSON запросы с данными кворков +4. Или искать в HAR файлы с "kworks", "catalog", "list" + +--- + +### 2. Детали кворка + +**Текущий (не работает):** +```python +POST /getKworkDetails # ❌ 404 Not Found +``` + +**Реальный из HAR:** +``` +GET /projects/3127023/view # ✅ 200 OK +``` + +**Проблема:** HAR показывает HTML страницу проекта. + +**Решение:** Использовать `GET /projects/{id}/view` и парсить HTML. + +**Как найти JSON API:** +1. Открыть DevTools → Network → XHR/Fetch +2. Перейти на https://kwork.ru/projects/{id}/view +3. Искать JSON запросы + +--- + +### 3. Отзывы пользователя + +**Текущий (не работает):** +```python +POST /userReviews # ❌ 404 Not Found +``` + +**Реальный из HAR:** +``` +POST /user/get_reviews # ✅ 200 OK +Payload: {"userId":126921,"type":"positive"} +``` + +**Решение:** ✅ Исправить endpoint на `/user/get_reviews` + +--- + +### 4. Информация о пользователе + +**Текущий (не работает):** +```python +POST /user # ❌ 404 Not Found +``` + +**Реальный из HAR:** +``` +GET /user/jtjagomega # ✅ 200 OK (HTML страница) +GET /user/alexey-liss # ✅ 200 OK (HTML страница) +POST /api/user/checknotify # ✅ 200 OK (JSON API) +``` + +**Решение:** +- Для профиля: `GET /user/{username}` (парсить HTML) +- Для уведомлений: `POST /api/user/checknotify` + +--- + +### 5. Справочные данные (города, страны) + +**Текущие (не работают):** +```python +POST /cities # ❌ 404 Not Found +POST /countries # ❌ 404 Not Found +``` + +**В HAR:** Нет таких endpoints. + +**Проблема:** Возможно данные встроены в HTML или загружаются через JavaScript. + +**Как найти:** +1. Открыть DevTools → Network +2. Перейти на страницу с формой (например, настройки) +3. Искать запросы с "cities", "countries", "regions" +4. Или искать в исходном коде страницы `