在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端点?
答案 0 :(得分:1)
您可以使用app.test_client.get()
,但速度受限,经过身份验证并提出请求前事件。
使用v0.7(当前位于develop
branch),您可以使用get_internal
。此方法不受速率限制,不会检查身份验证,也不会引发预请求事件。用法示例:
from eve.methods.get import get_internal
payload = get_internal(endpoint)