1

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}
4

2 に答える 2

1

私は Falcon には詳しくありません。通常は Flask を使用しますが、ドキュメントを参照するには、req.get_param() を使用して取得する必要があります。

from_time = req.get_param('from_time')
to_time = req.get_param('to_time')

on_get()これを関数に入れる必要があります

def on_get(self, req, resp, server_id, plugin_id):
    from_time = req.get_param('from_time')
    to_time = req.get_param('to_time')
    # do whatever you want and return your response
于 2016-11-24T15:11:20.840 に答える
1

?クエリ パラメータが続きます。Falcon を使用してアクセスできますRequest.params

于 2016-11-24T14:59:48.243 に答える