API

代理自 chalaoshi.de 的浙大老师教评数据接口, 全部 GET, 无需鉴权。

基础 URL

端点

GET/api/search?q=<名字或拼音>试一下 ↗

按姓名或拼音搜索老师, 返回候选列表(支持模糊匹配)。

请求参数

参数类型说明
qstring(必填)老师姓名或拼音, 如 陈建海 / chenjianhai

响应示例

{
  "q": "陈建海",
  "count": 1,
  "teachers": [
    {
      "tid": "1902",
      "name": "陈建海",
      "college": "计算机科学与技术学院",
      "score": "9.8"
    }
  ]
}
GET/api/teacher/<tid>试一下 ↗

老师详情: 综合评分、参与打分人数、点名率、评论数, 以及各门课的历史平均绩点。

请求参数

参数类型说明
tidstring(必填)老师数字 ID, 来自搜索结果的 tid

响应示例

{
  "tid": "1902",
  "name": "陈建海",
  "college": "计算机科学与技术学院",
  "score": "9.84",
  "ratingCount": "473",
  "rollCallRate": "19.9%",
  "commentCount": "395",
  "courses": [
    { "name": "C程序设计基础及实验", "gpa": "4.16", "count": "204" },
    { "name": "区块链技术应用实践", "gpa": "4.29", "count": "157" }
  ]
}
GET/api/comments/<tid>?sort=time|rate&limit=20&offset=0试一下 ↗

评论列表, 支持分页与排序。sort=time 最新在前, sort=rate 赞最多在前; 响应含 total / hasMore 便于分页。

请求参数

参数类型说明
tidstring(必填)老师数字 ID
sorttime | rate排序方式, 默认 time
limitnumber每页条数, 1–100, 默认 20
offsetnumber偏移量, 默认 0

响应示例

{
  "tid": "1902",
  "sort": "rate",
  "total": 395,
  "offset": 0,
  "limit": 20,
  "hasMore": true,
  "comments": [
    {
      "id": "17295",
      "content": "陈老师的人格魅力……",
      "likes": 188,
      "date": "2017.12.19"
    }
  ]
}
GET/api/gpa?course=<课程名>试一下 ↗

列出该课所有任课老师的平均绩点(±标准差)与上报人数, 按绩点排序。数据来自「课否」。

请求参数

参数类型说明
coursestring(必填)课程名, 支持模糊匹配

响应示例

{
  "course": "程序设计基础及实验",
  "count": 11,
  "rows": [
    { "teacher": "陈建海", "gpa": "4.16±0.5", "count": "204" }
  ]
}
GET/api/health[?probe=1]试一下 ↗

代理存活检查。加 probe=1 时真实探测上游 chalaoshi.de 是否可访问。

响应示例

{
  "ok": true,
  "time": "2026-08-16T10:53:26Z",
  "cacheEntries": 1,
  "upstream": { "web": ["https://chalaoshi.de"], "api": ["https://api.chalaoshi.de"] }
}

错误与状态码

  • 404 老师不存在或已被删除。
  • 429 触发限流, 响应含 retryAfter 秒。
  • 502 上游 chalaoshi.de 暂时无法访问(通常需要科学上网或域名已更换)。
  • 错误体统一为:
    { "error": "说明", "upstreamStatus": 502 }