2016-05-10 2 views
0

私は私が取り組んでいる小さなAPIを持っています、すべて正常に動作します。私の要求はすべて、私は何の理由でURLクエリを通して結果をフィルタリングしようとしますか?デバイスフィールド用ではありません。Python Falcon URLを介してフィルタリング

def on_get(self, req, resp): 
    """Handles GET requests""" 
    if req.get_param("id"): 
     result = {'location': r.db(PROJECT_DB).table(PROJECT_TABLE).get(req.get_param("id")).run(db_connection)} 

    elif req.get_param("device"): 
     result = {'location': r.db(PROJECT_DB).table(PROJECT_TABLE).get(req.get_param("device")).run(db_connection)} 

    else: 
     location = r.db(PROJECT_DB).table(PROJECT_TABLE).run(db_connection) 
     result = {'locations': [i for i in location]} 
    resp.body = json.dumps(result) 

http://localhost:8000/location?id=(some random id)、これは

に動作しますが、私はhttp://localhost:8000/location?device=(some device)をすれば、これは動作しませんヌル

を返しますので、誰も私が間違って何をやっている私に言うことができますか?誰かがURLを使用してフィルタリングするより良い方法を知っていれば、より良いでしょうか?

注:私は使用していますrethinkdb

EDIT:これは私が通常持っているものである

:idがない奇妙なデバイスではなく、[OK]を作品

{ 
    "locations": [ 
    { 
     "id": "4bf4b94f-747a-42db-9d54-a8399d995025", 
     "location": "gps coords", 
     "device": "Device 2" 
    }, 
    { 
     "id": "b5cce561-37d2-42e7-86e4-a31c008b0af2", 
     "location": "gps coords", 
     "device": "Device 1" 
    }, 
    { 
     "id": "bebba7cf-710c-4ee8-ad69-2d58174d4e02", 
     "location": "gps coords", 
     "device": "Device 1" 
    }, 
    { 
     "id": "e928f84b-60ff-40f3-b839-920bc99e5480", 
     "location": "gps coords", 
     "device": "Device1" 
    } 
    ] 
} 

フィルタリングによって

+0

明らかに、その 'device =(some device)'には何もありません。または、あなたのアプリにログインして、 'result'がnull以外のものであることを確認しましたか? –

+0

リクエスト内のタイプとロケーションクエリから取得したデータを確認しましたか?おそらくそこに不一致があります –

+0

はい私は持っており、ミスマッチを示すものは何もありません – Nick

答えて

0

私はこの問題に対する答えを見つけました.rethinkdbはgetクエリの主キーを介してのみ取得するため、戦争を起こさなかった理由は

result = {'location': r.db(PROJECT_DB).table(PROJECT_TABLE).get(req.get_param("device")).run(db_connection)} 

ので、私がやるべきことは、私はこのように望んでいたし、それが助けに皆のための

result = {'location': list(r.db(PROJECT_DB).table(PROJECT_TABLE).filter({'device': param}).run(db_connection))} 

感謝を働いていたし、この答えは、支援を期待しているだろうかによって結果をフィルタリングすることでした。

関連する問題