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, 云资产清单, 异步编程, 无后门, 自由职业平台, 运行时操纵, 逆向工具, 逆向工程