python - 如何处理 REST API 中的查询 [ python]

标签 python rest falconframework

我学习如何使用 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"}
                    }

                }

            }
        }

    }
}

我想创建一个 API,它将返回一段时间(例如 2014 年到 2016 年之间)的指标。我怎样才能做到呢? 例如,我现在有以下代码,通过 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}

最佳答案

我不熟悉 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

关于python - 如何处理 REST API 中的查询 [ python],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40789124/

相关文章:

python - 在 Python 中向量化多维操作

Python Falcon - 获取 POST 数据

python-3.x - 我们如何将文件(作为多部分请求的一部分接受)发送到 python 中的 MINIO 对象存储而不将文件保存在本地存储中?

python - 猎鹰,属性错误 : 'API' object has no attribute 'create'

python - 修正伪代码编写的双重求和公式

python - 从python中的其他文件导入函数

python - 从字符串列中提取数字

REST 方式在一个请求中发布多个相同类型的资源

用于搜索和搜索结果的 RESTful MVC 模式

python - 使用 nginx 的 Django REST 框架绝对 url 总是返回 127.0.0.1