Initial test with Eve
This commit is contained in:
111
attract/settings.py
Normal file
111
attract/settings.py
Normal file
@@ -0,0 +1,111 @@
|
||||
# Enable reads (GET), inserts (POST) and DELETE for resources/collections
|
||||
# (if you omit this line, the API will default to ['GET'] and provide
|
||||
# read-only access to the endpoint).
|
||||
RESOURCE_METHODS = ['GET', 'POST', 'DELETE']
|
||||
|
||||
# Enable reads (GET), edits (PATCH), replacements (PUT) and deletes of
|
||||
# individual items (defaults to read-only item access).
|
||||
ITEM_METHODS = ['GET', 'PATCH', 'PUT', 'DELETE']
|
||||
|
||||
|
||||
schema = {
|
||||
# Schema definition, based on Cerberus grammar. Check the Cerberus project
|
||||
# (https://github.com/nicolaiarocci/cerberus) for details.
|
||||
'firstname': {
|
||||
'type': 'string',
|
||||
'minlength': 1,
|
||||
'maxlength': 10,
|
||||
},
|
||||
'lastname': {
|
||||
'type': 'string',
|
||||
'minlength': 1,
|
||||
'maxlength': 15,
|
||||
'required': True,
|
||||
# talk about hard constraints! For the purpose of the demo
|
||||
# 'lastname' is an API entry-point, so we need it to be unique.
|
||||
'unique': True,
|
||||
},
|
||||
# 'role' is a list, and can only contain values from 'allowed'.
|
||||
'role': {
|
||||
'type': 'list',
|
||||
'allowed': ["author", "contributor", "copy"],
|
||||
},
|
||||
# An embedded 'strongly-typed' dictionary.
|
||||
'location': {
|
||||
'type': 'dict',
|
||||
'schema': {
|
||||
'address': {'type': 'string'},
|
||||
'city': {'type': 'string'}
|
||||
},
|
||||
},
|
||||
'born': {
|
||||
'type': 'datetime',
|
||||
},
|
||||
}
|
||||
|
||||
nodes_schema = {
|
||||
'name': {
|
||||
'type': 'string',
|
||||
'minlength': 1,
|
||||
'maxlength': 128,
|
||||
},
|
||||
'parent': {
|
||||
'type': 'objectid',
|
||||
# 'data_relation': {
|
||||
# 'resource': 'node',
|
||||
# 'field': '_id',
|
||||
# },
|
||||
},
|
||||
'node_type' : {
|
||||
'type' : 'string',
|
||||
'validcf' : True,
|
||||
},
|
||||
# 'custom_fields' : {
|
||||
# 'type' : 'dict'
|
||||
# }
|
||||
}
|
||||
|
||||
|
||||
nodes = {
|
||||
# We choose to override global cache-control directives for this resource.
|
||||
'cache_control': 'max-age=10,must-revalidate',
|
||||
'cache_expires': 10,
|
||||
|
||||
# most global settings can be overridden at resource level
|
||||
'resource_methods': ['GET', 'POST'],
|
||||
|
||||
'schema': nodes_schema
|
||||
}
|
||||
|
||||
|
||||
|
||||
people = {
|
||||
# 'title' tag used in item links. Defaults to the resource title minus
|
||||
# the final, plural 's' (works fine in most cases but not for 'people')
|
||||
'item_title': 'person',
|
||||
|
||||
# by default the standard item entry point is defined as
|
||||
# '/people/<ObjectId>'. We leave it untouched, and we also enable an
|
||||
# additional read-only entry point. This way consumers can also perform
|
||||
# GET requests at '/people/<lastname>'.
|
||||
'additional_lookup': {
|
||||
'url': 'regex("[\w]+")',
|
||||
'field': 'lastname'
|
||||
},
|
||||
|
||||
# We choose to override global cache-control directives for this resource.
|
||||
'cache_control': 'max-age=10,must-revalidate',
|
||||
'cache_expires': 10,
|
||||
|
||||
# most global settings can be overridden at resource level
|
||||
'resource_methods': ['GET', 'POST'],
|
||||
|
||||
'schema': schema
|
||||
}
|
||||
|
||||
|
||||
DOMAIN = {
|
||||
'people': people,
|
||||
'nodes' : nodes
|
||||
}
|
||||
|
Reference in New Issue
Block a user