2016-12-12 1 views
3

Я пытаюсь использовать EVE для публикации коллекции документов для монгонга только для чтения. Проблема: ни одно из полей объекта не возвращается через EVE.Python Eve: поля не возвращаются в конфигурации по умолчанию

Пытается начать как можно проще. My mongodb 'restaurants' collection is built using a tutorial.

Быстрый тест базы данных Монго выглядит хорошо:

> 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

ALLOW_UNKNOWN Попробуйте установить в True. Поскольку ваши API будут доступны только для чтения, вы все равно не рискуете взломать ваши документы.

+0

Это сделал трюк спасибо !!! – nachonachoman

+0

Добро пожаловать. Пожалуйста, примите ответ, если он действителен, поэтому другие знают, что это действительно для них тоже. –

Смежные вопросы