公共 Github Pages 网站的 Github API 速率限制

3
我已经在这里设置了一个github pages网站:http://d3js.live
这个网站使用github api获取d3.js示例的代码片段。最终的外观和功能类似于这个网站:http://threejs.live
由于我的访问限制已达上限,因此我遇到了403错误。我知道认证会增加我的访问量限制,但是我希望这个网站是公开的。因此,我有几个问题:
  1. 如果流量增加,任何访问限制都可能成为一个问题。 是否有合理的方案可以在公共页面上禁用访问限制?
  2. 如果我要使用我的用户帐户进行身份验证,我如何在Github页面上创建服务器端令牌? 我想确认这个令牌不会对客户端可见。 该存储库在此处:https://github.com/ekatzenstein/d3.js-live
  3. 让最终用户使用Github登录不是一个选项。 我希望这是一个低入门门槛的网站,特别是对于那些不熟悉Github的人。 是否有可能将访问限制与每个用户绑定?
Mike Bostock的bl.ocks似乎避开了访问限制,但我不清楚它是如何实现的。

你有后端吗,还是纯粹客户端? - msanford
目前仅为客户端,只使用create-react-app部署github页面站点(在packages.json中运行“npm run deploy”)。 - ekatz
好的,我问这个问题是因为一个(显而易见)的解决方法是拥有一个后端来为您缓存响应,并将其提供给所有用户。这就是您的另一个示例所做的事情(例如,所有的缩略图都是从bl.ocks提供的)。 - msanford
1
谢谢,我开始怀疑了:D 我现在只是打算使用静态JSON来托管GitHub API的结果。 - ekatz
说句实话,我会把它作为一个答案添加进去。 - msanford
1个回答

1
最好的方法是编写一个简单的后端,向GitHub(或其他)发出API请求,将这些结果缓存一段时间以保持在速率限制以下,然后从该请求中为您的用户提供所有所需的资产。如果您的JavaScript是多态的,那么将大部分现有内容放入NodeJS服务器中应该相当简单。一般来说,这可能是这样的工具应该做的可能。当然,鉴于所需的权衡,可以就两种方式进行争论。例如,这似乎是bl.ocks所做的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接