Python Eve:默认配置中未返回字段
Python Eve: fields not returned in default configuration
我正在尝试利用 EVE 公开只读 mongo 文档集合。
问题是 none 的对象字段是 return 通过 EVE 编辑的。
尝试从简单的开始。 My mongodb 'restaurants' collection is built using a tutorial.
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 个对象 returned。相反,我看到以下内容确实包含项目但不包含对象属性,例如地址、自治市镇、美食、等级...
我的问题是:我期望 EVE 在列表中 return 对象属性是错误的吗?如果是这样,我应该更改什么配置来启用它?我只需要 EVE 进行只读访问,并且可能会有大量具有不同模式的集合。我想明确地避免 defining/maintaining 每个模式。
{
"_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"
},
尝试将 ALLOW_UNKNOWN
设置为 True
。由于您的 API 将是只读的,因此无论如何您都不会有篡改文档的风险。
我正在尝试利用 EVE 公开只读 mongo 文档集合。 问题是 none 的对象字段是 return 通过 EVE 编辑的。
尝试从简单的开始。 My mongodb 'restaurants' collection is built using a tutorial.
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 个对象 returned。相反,我看到以下内容确实包含项目但不包含对象属性,例如地址、自治市镇、美食、等级...
我的问题是:我期望 EVE 在列表中 return 对象属性是错误的吗?如果是这样,我应该更改什么配置来启用它?我只需要 EVE 进行只读访问,并且可能会有大量具有不同模式的集合。我想明确地避免 defining/maintaining 每个模式。
{
"_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"
},
尝试将 ALLOW_UNKNOWN
设置为 True
。由于您的 API 将是只读的,因此无论如何您都不会有篡改文档的风险。