接口说明

api 数据接口说明

当前站点使用程序小店账号体系。用户先到 `shop.sanrenjz.com` 登录并购买 Python 会员或全站 SVIP,再到本项目创建 API Key 并通过 Python 调用数据接口。

1. 登录与会员

  • 网页登录入口:`/login/`
  • 程序登录接口:`POST /api/auth/shop-login/`
  • 会员购买页:`https://shop.sanrenjz.com/python`
  • 只有有效 Python 会员或全站 SVIP 才可以创建 API Key 和调用 `/api/data/...`
api 数据 购买提示:在程序小店页面顶部,点击“搜索”右侧的“类型分类”,选择“python”,随便打开一个商品;在商品右侧栏里选择“Python 会员”或“全站 SVIP”即可开通。

2. 获取数据目录

GET /api/datatypes/
GET /api/tables/<data_type>/
GET /api/table/<table_id>/rows/

3. 创建 API Key

POST /api/keys/
Content-Type: application/json

{
  "data_type": "python_strategy"
}

网页端也可以在个人中心直接选择数据类型创建。

4. 调用数据接口

GET /api/data/<api_key>/
GET /api/data/<data_type>/<api_key>/?table=<table_name>
  • 当一个 `data_type` 下有多张表时,必须传 `table` 查询参数指定表名
  • 只有该类型下仅有一张表时,才可以省略 `table`

5. Python 调用示例

import requests

base_url = "https://api.sanrenjz.com"
data_type = "可转债策略"
table_name = "pure_low_bond_top_5"
api_key = "你的_api_key"

resp = requests.get(
    f"{base_url}/api/data/{data_type}/{api_key}/",
    params={"table": table_name},
    timeout=30,
)
resp.raise_for_status()

payload = resp.json()
print("table:", payload["table"])
for row in payload["data"]:
    print(row)

先查表名再取数

import requests

base_url = "https://api.sanrenjz.com"
data_type = "可转债策略"

resp = requests.get(f"{base_url}/api/tables/{data_type}/", timeout=30)
resp.raise_for_status()

for item in resp.json()["items"]:
    print(item["name"], item.get("description", ""))

获取目录示例

import requests

resp = requests.get("https://api.sanrenjz.com/api/datatypes/", timeout=30)
resp.raise_for_status()
print(resp.json())
使用流程

用户使用流程

  1. 到 `https://shop.sanrenjz.com` 注册并登录
  2. 购买 Python 会员或全站 SVIP
  3. 回到当前站点登录并同步会员状态
  4. 创建绑定到目标数据类型的 API Key
  5. 先确认目标表名,再调用 `/api/data/<data_type>/<api_key>/?table=<table_name>`
权限说明

权限边界

  • 普通用户只有调用权限,没有上传权限
  • 数据由管理员提前维护并上传
  • API Key 用于读取管理员已准备好的数据表
样例数据

当前样例数据

数据类型:可转债数据

数据表:可转债基础数据