Skip to content

源码与外部接口

当前在线接口属于 GitHub,不属于本站 API。访问限制和返回约定以对应服务为准。

源码文本

快照不包含源码正文。可以打开 githubUrl 查看 GitHub 文件,或读取 rawUrl 获取文本。程序化获取时也可使用 GitHub Contents API:

sh
curl --fail --location \
  -H 'Accept: application/vnd.github.raw+json' \
  -H 'X-GitHub-Api-Version: 2022-11-28' \
  'https://api.github.com/repos/xw7qwq/codeflare/contents/AtCoder/abc231/a.cpp?ref=main'

此请求返回原始文本,不能按默认 JSON / Base64 响应解析。文件路径应逐段 URL 编码,保留 / 分隔;源码仅用于阅读,不应在接入时自动执行。

题库条目在新标签页打开独立源码阅读页。阅读页先请求 Contents API(5 秒超时),请求失败或超时后并行尝试 jsDelivr 和 rawUrl,两路各 7 秒超时。源码与快照提交时间并行读取,元数据失败不阻塞源码。当前阅读页保留原始文本供复制,没有按路径缓存、持久化缓存、TTL 或 SHA 完整性验证。完整实现边界见网站维护

数据依赖

来源请求用途
GitHub 文件树GET https://api.github.com/repos/xw7qwq/codeflare/git/trees/main?recursive=1在线题目路径;大仓库需检查 truncated
GitHub 最近提交GET https://api.github.com/repos/xw7qwq/codeflare/commits?sha=main&per_page=6main 最近六次提交;读取 shacommit.message 首行、commit.committer.date

GitHub 官方提交接口。两个列表独立加载,快照和在线 JSON 请求均设置 6 秒超时并重新验证缓存;题库拒绝 truncated: true 的文件树,防止部分数据覆盖完整快照。

历史兼容字段

site-data.json 仍包含 commitCountcontributionsratings,避免破坏旧契约。首页不再渲染或请求提交日历、AtCoder、Codeforces Rating。生成器仅保留已有 Rating,未知时为 null,不再调用外部 Rating 服务;generatedAt 不代表这些历史 Rating 的更新时间。

请求限制

GitHub REST API 有匿名与认证请求限制,遇到限额时读取实际的限流响应头,遵循服务返回的重试要求。不要在公开静态页面内嵌个人访问令牌,也不要用并发重试绕过限制。GitHub 官方限流说明

外部调用失败时,接入者应保留已验证的数据并显示更新时间;不要把“请求失败”改写成“当天没有提交”或“Rating 为零”。