使用 grape 做 api,现在想统计每个接口调用次数、来源等信息。找了一圈没有发现有和 grape 搭配使用的 gem,大家是怎么做的呢?
如果想把这些信息存到数据库用来提供查询的话,可以写个 Grape 的 Middleware,其实还是个 rack middleware 可以这样:
class ApiLogger < Grape::Middleware::Base
def after
req = request
request = {
ip: req.ip,
method: req.request_method,
fullpath: req.fullpath,
headers: req.headers,
body: env['api.request.input']
}
status, headers, bodies = *@app_response
# record to database
@app_response
end
end
然后再 use 这个 middleware 即可