forked from thevkozlovsky/python-eve
-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.py
86 lines (82 loc) · 3.58 KB
/
settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Замените user, password, example.com, database на ваши данные доступа к БД.
MONGO_URI = "mongodb://user:password@example.com:27017/database"
# По умолчанию Eve запускает API в режиме "read-only" (т.е. поддерживаются только GET запросы),
# мы включаем поддержку методов POST, PUT, PATCH, DELETE.
RESOURCE_METHODS = ['GET', 'POST', 'DELETE']
ITEM_METHODS = ['GET', 'PATCH', 'PUT', 'DELETE']
DOMAIN = {
# Описываем ресурс `/users`
'users': {
# Здесь мы описываем модель данных. Для валидации используется модуль Cerberus от автора Eve.
# Вы можете ознакомиться с ним в официальной документации модуля http://docs.python-cerberus.org/en/stable/.
# Либо прочитать заметки в официальной документации EVE http://python-eve.org/validation.html#validation.
'schema': {
'username': {
'type': 'string',
'minlength': 5,
'maxlength': 32,
'required': True,
# уникальное поле (индекс не создаётся, просто значение должно быть уникальным)
'unique': True,
},
'firstname': {
'type': 'string',
'minlength': 1,
'maxlength': 10,
'required': True,
},
'lastname': {
'type': 'string',
'minlength': 1,
'maxlength': 15,
'required': True,
},
'role': {
'type': 'list', # тип: список
'allowed': ["author", "contributor"], # разрешаем использовать значения: "author", "contributor"
},
'location': {
'type': 'dict', # тип: словарь
# описываем "схему" словаря
'schema': {
'address': {'type': 'string'},
'city': {'type': 'string'}
},
},
'born': {
'type': 'datetime',
},
'active': {
'type': 'boolean',
'default': True
}
}
},
# Описываем ресурс `/groups`
'groups': {
# Описываем модель данных.
'schema': {
'title': {
'type': 'string',
'minlength': 5,
'maxlength': 32,
'required': True,
'unique': True
},
'users': {
'type': 'list', # тип: список
'default': [], # по умолчанию: пустой список
# описываем "схему" списка
'schema': {
'type': 'objectid', # тип данных: objectid
# ссылаемся на запись в другой коллекции
'data_relation': {
'resource': 'users', # на ресурс `users` (который мы описали выше)
'field': '_id', # на поле `_id`
'embeddable': True
}
}
}
}
}
}