magomedov-dev/kwork-mobile-api

GitHub: magomedov-dev/kwork-mobile-api

通过逆向 kwork.ru 移动端私有 API 构建的非官方 Python 异步库与 FastAPI 服务,为开发者提供完整的平台接口封装。

Stars: 0 | Forks: 0

# KworkAPI 非官方 Python 库和 REST 包装器 (FastAPI),基于自由职业平台 **kwork.ru** 的私有 API 构建。kwork 没有公开的 API —— 客户端是通过逆向工程移动应用程序流量 (`api.kwork.ru`) 构建的。 ## 结构 ``` kworkapi/ — библиотека-обёртка (ядро) transport.py — httpx-транспорт: заголовки, ретраи, rate-limit, обработка ошибок client.py — KworkClient: сессия + доступ к группам методов (ресурсам) auth.py — авторизация (signIn), хранение токена models/ — pydantic-модели ответов resources/ — группы методов: account, catalog, search, exchange, users, kworks, orders, messages, files, portfolio, tracks, misc api/ — FastAPI-сервис поверх библиотеки (REST + Swagger наружу) research/ — артефакты реверса: инструкция по захвату + карта эндпоинтов tests/ — тесты (моки через respx) ``` ## 状态 发布 **0.6.0**(登录时的验证码处理;pyright strict,py.typed):完整的 API 覆盖 —— **12 个资源,166 个方法**(授权与 注册,目录,搜索,交易所,个人资料,kwork'и,订单的完整生命周期, 消息和语音,文件,作品集,曲目,设置,地理,法律页面)+ FastAPI 服务。读取和登录已在真实的 API 上进行了测试。详情见 [`docs/`](docs/README.md),计划见 [`docs/05-roadmap.md`](docs/05-roadmap.md)。 ## 文档 完整的用户指南(安装、授权、所有带示例的资源、 错误处理、REST 服务) —— 见 **[`docs/07-usage.md`](docs/07-usage.md)**。 其余文档(逆向工程、API 参考、架构、roadmap) —— 见 [`docs/`](docs/README.md)。 ## 安装 ``` git clone https://github.com/magomedov-dev/kworkapi.git cd kworkapi python -m venv .venv && source .venv/bin/activate.fish # bash: source .venv/bin/activate pip install -e ".[server,dev]" ``` ## 快速开始(库) ``` import asyncio from kworkapi import KworkClient async def main(): async with KworkClient() as kw: await kw.login("user@example.com", "password") me = await kw.account.me() print(me.username, me.free_amount, me.currency) res = await kw.search.kworks("логотип", limit=10) for k in res.kworks: print(k.id, k.title, k.price) asyncio.run(main()) ``` 客户端资源:`account`、`catalog`、`search`、`exchange`、`users`、`kworks`、 `orders`、`messages`、`files`、`portfolio`、`tracks`、`misc`。 ## 运行 REST 服务 (FastAPI) ``` pip install -e ".[server]" uvicorn api.main:app --reload # Swagger: http://127.0.0.1:8000/docs ``` 服务授权:`POST /auth/login` → 获取 token,随后将其传入 header `X-Kwork-Token`。 ## 路线图 - [x] 阶段 0 — 项目骨架 - [x] 阶段 1 — 侦察:逆向 APK + 流量捕获,endpoint 映射 - [x] 阶段 2 — 授权(signIn、token、uad/session) - [x] 阶段 3 — 读取:账户、目录、搜索、交易所、用户(+ 模型) - [x] 阶段 4 — 操作:消息、回复、设置、kwork'и - [x] 阶段 5 — FastAPI 包装器 - [x] 阶段 6 — 稳定性:限流、类型检查、CI - [x] 阶段 7 — 发布(semver、tag) - [x] 阶段 8 — 完整的 API 覆盖(12 个资源,166 个方法)
标签:API封装, AV绕过, FastAPI, Python, 云资产清单, 异步编程, 无后门, 自由职业平台, 运行时操纵, 逆向工具, 逆向工程