我写了一个网站来显示我们 api 的状态。
- endpoints.rb 返回一个带有好端点和坏端点的散列
- apiStatusWebsite.rb 正在使用 endpoints.rb 并呈现 status.erb
代码:
require 'sinatra'
require 'endpoints.rb'
def updateStatus
get '/status' do
endpointObject = Endpoints.new(getApiServerURL("qa"))
result = endpointObject.checkApiStatus()
erb :status, :locals => { :apiData => result}
end
end
- status.erb 与 html 内容
问题:
1) api 允许每 100 秒 100 个请求。当 3 个人调用 api 状态站点时,服务器向每个用户发出 45 个请求 api -> 服务器被禁止 100 秒,状态站点无用。
2)我可以为问题 1 发送一个特殊的标头,但是状态站点可能会被滥用以在 api 上施加负载(不太可能但仍然可能)
可能的解决方案:
/status 仅显示 api 状态但不调用endpointObject.checkApiStatus()
. 此检查过程应在后台某处每 2 分钟自动发生一次,并创建一个 html 文件。此 html 文件将从 apiStatusWebsite2.rb 加载
require 'sinatra'
get '/status' do
send_file 'status.html'
end
但是如何保存当前 apiStatusWebsite.rb 呈现的这个 html 文件呢?