2016-03-17 41 views
2

在燒瓶中,我有一個夏娃API下端點上運行一樣/ API/V1 /小工具從我的瓶代碼查詢我的夏娃API

我可以查詢,從如JavaScript的,但我不知道如何從我的瓶的應用程序中的其它地方正確查詢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

請勿從API請求;只需定義一個函數,該函數在調用'/ hello'時都會返回,並且可以在燒瓶應用程序中使用它。 –

+0

我想用我的夏娃端點,張貼在一個新的記錄等價物,例如創造紀錄獲得額外的變量等。我認爲這將是應用程序的屬性,或應用程序本身。 –

回答

1

您可以使用app.test_client.get()然而這是速率限制,驗證,提高了預先請求事件。

隨着V0.7(目前在develop branch),你可以使用get_internal。該方法不受速率限制,不會檢查身份驗證,也不會引發預請求事件。使用示例:

from eve.methods.get import get_internal 

payload = get_internal(endpoint)