从我的Flask代码中查询我的Eve API

时间:2016-03-17 16:41:39

标签: python flask eve

在Flask中,我有一个在端点下运行的Eve API,例如/ api / v1 / Widgets

我可以从例如Javascript,但我不知道如何正确从我的Flask应用中的其他地方查询该API。

刚才,例如,如果我需要在我的某个路由中搜索Widgets,那么我将加载requests模块并使用单独的http请求查询API,并处理返回的JSON

@app.route('/hello')
def show_hello():
    resp   = requests.get('http://example.com/api/v1/Widgets')
    return jsonify({'results': resp.json()})

这肯定非常低效,似乎必须有像

这样的东西
my_endpoint = app.Eve.endpoint('Widgets')          # not real
return jsonify({'results': my_endpoint.search()})  # not real

但我不知道那是什么。是否有人可以帮助我了解我是否可以通过常规的Flask应用程序路径直接查询我的Eve端点?

1 个答案:

答案 0 :(得分:1)

您可以使用app.test_client.get(),但速度受限,经过身份验证并提出请求前事件。

使用v0.7(当前位于develop branch),您可以使用get_internal。此方法不受速率限制,不会检查身份验证,也不会引发预请求事件。用法示例:

from eve.methods.get import get_internal

payload = get_internal(endpoint)