Python Eve: поля не возвращаются в конфигурации по умолчанию

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

Пытаюсь начать как можно проще. Моя коллекция "ресторанов" mongodb создана с использованием руководства.

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

> 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"
}

Сервер EVE настроен максимально минимально:

"""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"
      },

person nachonachoman    schedule 12.12.2016    source источник


Ответы (1)


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

person Nicola Iarocci    schedule 13.12.2016
comment
Пожалуйста. Пожалуйста, примите ответ, если он действителен, чтобы другие знали, что он действителен и для них. - person Nicola Iarocci; 13.12.2016