Ich versuche EVE zu nutzen, um eine schreibgeschützte Mongo-Dokumentensammlung verfügbar zu machen. Das Problem ist, dass keines der Objektfelder über EVE zurückgegeben wird.Python Eve: Felder, die nicht in der Standardkonfiguration zurückgegeben werden
Der Versuch, so einfach wie möglich zu starten. My mongodb 'restaurants' collection is built using a tutorial.
Ein schneller Test der Mongo Datenbank sieht gut aus:
> 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"
}
Der EVE-Server so gering wie möglich konfiguriert ist:
"""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')
Diese fehlerfrei läuft. Aber wenn ich zu http://server/restaurants navigiere, würde ich erwarten, dass 25 Objekte zurückgegeben werden. Stattdessen sehe ich folgendes, das enthält die Elemente, aber enthält nicht die Objekteigenschaften wie Adresse, Bezirk, Küche, Noten ...
Meine Frage ist: Bin ich falsch zu erwarten, dass EVE Objektattribute in der Auflistung zurückgibt, und wenn ja, welche Konfiguration ändere ich, um dies zu ermöglichen? Ich brauche nur EVE für den schreibgeschützten Zugriff und wird wahrscheinlich eine große Anzahl von Sammlungen mit unterschiedlichen Schemas haben. Ich möchte vermeiden, dass jedes Schema explizit definiert/gepflegt wird.
{
"_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"
},
Das hat den Trick Danke !!! – nachonachoman
Gern geschehen. Bitte akzeptieren Sie die Antwort, wenn sie gültig ist, damit andere wissen, dass sie auch für sie gültig ist. –