2016-12-12 7 views
3

私はEVEを利用して、読み取り専用のmongoドキュメントコレクションを公開しようとしています。 問題はEVEを介して返されるオブジェクトフィールドではありません。Python Eve:デフォルトコンフィグレーションでフィールドが返されない

可能な限り簡単に開始しようとしています。 My mongodb 'restaurants' collection is built using a tutorial

のmongoデータベースのクイックテスト良く見える:EVEサーバは、可能な限り最小限のように構成されて

> db.restaurants.find().limit(1).pretty() 
{ 
     "_id" : ObjectId("584ad656b02a038949ee59cb"), 
     "address" : { 
       "building" : "1007", 
       "coord" : [ 
         -73.856077, 
         40.848447 
       ], 
       "street" : "Morris Park Ave", 
       "zipcode" : "10462" 
     }, 
     "borough" : "Bronx", 
     "cuisine" : "Bakery", 
     "grades" : [ 
       { 
         "date" : ISODate("2014-03-03T00:00:00Z"), 
         "grade" : "A", 
         "score" : 2 
       }, 
       { 
         "date" : ISODate("2013-09-11T00:00:00Z"), 
         "grade" : "A", 
         "score" : 6 
       }, 
       { 
         "date" : ISODate("2013-01-24T00:00:00Z"), 
         "grade" : "A", 
         "score" : 10 
       }, 
       { 
         "date" : ISODate("2011-11-23T00:00:00Z"), 
         "grade" : "A", 
         "score" : 9 
       }, 
       { 
         "date" : ISODate("2011-03-10T00:00:00Z"), 
         "grade" : "B", 
         "score" : 14 
       } 
     ], 
     "name" : "Morris Park Bake Shop", 
     "restaurant_id" : "30075445" 
} 

"""Settings/Config for Eve server""" 
from eve import Eve 

# http://python-eve.org/config.html#global-configuration 
SETTINGS = { 
    'DOMAIN': {'restaurants': {}}, 
    'MONGO_HOST': 'localhost', 
    'MONGO_PORT': 27017, 
    # MONGO_USERNAME': os.environ.get(...), 
    # MONGO_PASSWORD': os.environ.get(...), 
    'MONGO_DBNAME': 'tutorial' 
} 

app = Eve(settings=SETTINGS) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0') 

これはエラーなしで実行されます。しかし、http://server/restaurantsに移動すると、25個のオブジェクトが返されることが予想されます。代わりに、私は項目を含んでいますが、住所、区域、料理、等級などのオブジェクトのプロパティを含んでいない以下を参照してください...

私の質問は:EVEが、もしそうなら、私はこれを可能にするためにどのような構成に変更しますか?私は読み取り専用のアクセスのためにEVEしか必要とせず、おそらく異なるスキーマを持つ多数のコレクションを持つでしょう。各スキーマを明示的に定義/維持することを避けたいと思います。

{ 
    "_items":[ 
     { 
     "_updated":"Thu, 01 Jan 1970 00:00:00 GMT", 
     "_id":"584ad656b02a038949ee59cb", 
     "_links":{ 
      "self":{ 
       "href":"restaurants/584ad656b02a038949ee59cb", 
       "title":"Restaurant" 
      } 
     }, 
     "_created":"Thu, 01 Jan 1970 00:00:00 GMT", 
     "_etag":"dc3b9401f2c4b0d56cfcb432c20ba163db3b0817" 
     }, 
     { 
     "_updated":"Thu, 01 Jan 1970 00:00:00 GMT", 
     "_id":"584ad656b02a038949ee59cc", 
     "_links":{ 
      "self":{ 
       "href":"restaurants/584ad656b02a038949ee59cc", 
       "title":"Restaurant" 
      } 
     }, 
     "_created":"Thu, 01 Jan 1970 00:00:00 GMT", 
     "_etag":"a426dafb6ad7096089bd97c3d48b0a8349bc33cb" 
     }, 

答えて

3

TrueALLOW_UNKNOWNを設定してみてください。 APIは読み取り専用になるので、とにかくドキュメントを改ざんする危険はありません。

+0

トリックはありがとう! – nachonachoman

+0

ようこそ。それが正当なものであれば、それを受け入れてください。他の人もそれが彼らにとって正当であると分かるようにしてください。 –

関連する問題