falcon libを使用してPythonでREST APIを実装する方法を学んでいます。たとえば、次の辞書があります。
db_data = {
"servers" : {
"1": {
# 'server_id':1,
"plugins":{
"1": {
"metrics_by_time":{
"2014":{"1":"Hello World 0"}
"2015":{"1":"Hello World 1"}
"2016":{"1":"Hello World 2"}
}
}
}
}
}
}
一定期間 (たとえば、2014 年から 2016 年の間) にメトリックを返す API を作成したいと考えています。どうすればできますか?たとえば、server_id と plugin_id でメトリックを返す次のコードがあります。
class By_Plugin_ID(object):
def on_get(self, req, resp, server_id, plugin_id):
resp.status = falcon.HTTP_200
resp.body = (json.dumps(db_data["servers"][str(server_id)]["plugins"][str(plugin_id)], ensure_ascii=False, default=lambda x:str(x)))
import falcon
app = application = falcon.API()
plugins_metrics = By_Plugin_ID()
app.add_route('/metrics/{server_id}/{plugin_id}', plugins_metrics)
このようなことを考えたのですが、「?」以降のクエリをどう処理するか。:
metrics/{server_id}/{plugin_id}?from_time={timestamp}&to_time={timestamp}