我寫了一個顯示我們api狀態的網站。Ruby/Sinatra/erb:save html fle
- 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(不可能的,但還是有可能)
可能的解決方案:
/狀態正說明api狀態,但不會調用endpointObject.checkApiStatus()
。這個檢查過程應該在後臺每2分鐘自動發生一次,並創建一個html文件。此HTML文件將從apiStatusWebsite2.rb
require 'sinatra'
get '/status' do
send_file 'status.html'
end
但如何保存其當前apiStatusWebsite.rb呈現此HTML文件被加載?
爲什麼不只是緩存來自API的響應?無需保存HTML文件。 – iain
thx會嘗試,但你也可以告訴我如何使用sinatra緩存,我是新的。 – user2211703