2016-05-28 6 views
3

データベースがあるサーバー上でmongodインスタンスを実行しています。
私はGETリクエストに簡単に応答するために、eveをREST http APIとしてデータベースに設定しようとしています。Eveを使用してmongodbコレクションを取得

私はのmongod RESTインターフェースを使用してhttp://92.51.132.110:28017/clockrefdb/test/rowsを要求した場合、私が手:DB内の文書から正しい値です

{ 
"offset" : 0, 
"rows": [ 
{ "_id" : { "$oid" : "5745ef6494aef075d127f1d0" }, "timestamp" : { "$date" : "2016-05-25T22:31:00.035+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } , 
{ "_id" : { "$oid" : "5747034194aef04e87df598d" }, "timestamp" : { "$date" : "2016-05-26T18:08:01.209+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } , 
{ "_id" : { "$oid" : "5747050094aef04fe7aa7c14" }, "timestamp" : { "$date" : "2016-05-26T18:15:28.576+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } , 
{ "_id" : { "$oid" : "5747050b94aef04ff397c81f" }, "timestamp" : { "$date" : "2016-05-26T18:15:39.779+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } , 
{ "_id" : { "$oid" : "5747052694aef050096e5c71" }, "timestamp" : { "$date" : "2016-05-26T18:16:06.635+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } , 
{ "_id" : { "$oid" : "57470a1694aef0536bf1d712" }, "timestamp" : { "$date" : "2016-05-26T18:37:10.022+0200" }, "frequencies" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ] } 
], 
"total_rows" : 6 , 
"query" : {} , 
"millis" : 0 
} 

。私は前夜を実行して、設定している場合 は今:

DOMAIN = { 'test':{} }            
MONGO_HOST = 'localhost' 
MONGO_PORT = 27017 
MONGO_USERNAME = 'user' 
MONGO_PASSWORD = 'passw' 
MONGO_DBNAME = 'clockrefdb' 
RESOURCE_METHODS = ['GET'] 

、デフォルトのスクリプトで前夜祭を実行します。

python run.py 

そしてcurl --header "Accept:application/json" "http://127.0.0.1:5000/test/57470a1694aef0536bf1d712"

私が取得:

{ 
"_created": "Thu, 01 Jan 1970 00:00:00 GMT", 
"_etag": "c020b57efefeb92a74f5d07875d9234e3aef077a", 
"_id": "57470a1694aef0536bf1d712", 
"_links": { 
    "collection": { 
     "href": "test", 
     "title": "test" 
    }, 
    "parent": { 
     "href": "/", 
     "title": "home" 
    }, 
    "self": { 
     "href": "test/57470a1694aef0536bf1d712", 
     "title": "Test" 
    } 
}, 
"_updated": "Thu, 01 Jan 1970 00:00:00 GMT" } 

2つのことをスタンドアウト:間違った日付と不足しているテーブル。 DBのこの誤った読み込みを引き起こしていると思いますか?
私はいくつかの重要なステップが欠けていると思います。
どのようなアイデアですか?

答えて

3

Eveは、既知のドメインスキーマにマップされているフィールドのみを表示します。これは、ドキュメント全体が公開されることを望まない可能性があるため、APIメンテナが公開フィールドセットを完全に制御できるようにするために行われます。

2つのオプションがあります。

DOMAIN = { 
    'test': { 
    'schema': { 
     'offset': {'type': 'integer'}, 
     'rows': { 
     'type': 'list', 
     'schema': {'type': 'dict', 'schema': ..., } 
     }, 
     ... 
    } 
    } 
}   

それとも、グローバルALLOW_UNKNOWN = Trueを設定することができます:あなたは、のようなものをエンドポイントの適切なドメインのスキーマを設定することができます。この最後の設定は、エンドポイントレベルの設定としても使用できます。

:前記基準を参照してください

関連する問題