Views
Клас з методами або функції, що викликає WSGI application для обробки http запита клієнта.
Що робить view:
Працює з БД
Перевіряє авторизацію (Authorization header)
Перевіряє формат переданих даних (Models)
Викликає код бізнес логіки (State Classes)
Викликає серіалізатор для формату відповіді (Serializes)
Що НЕ робить view:
Не реалізує жодної бізнес логіки (Однакові для всіх типів процедур)
Views є таким собі ключовим хабом, який збирає до купи різні компоненти системи. Розбиратись з якимось фукнціоналом буде краще починаючи з них.
Приклад:
class ObjectResource(BaseResource):
serializer_class = ObjectSerializer
@json_view(
permission="patch_permission",
)
def patch(self, uid):
with database.get_and_update(pk=uid) as obj:
data = self.model_class(self.request.data).validate()
self.state_class.on_patch(obj, data)
logger.info("Object has been updated", extra={"OBJ_ID": uid})
return {
"data": self.serializer_class(obj).data,
}
Predicates
TODO
Текст
View validation level
TODO
Текст
Permissions validators
TODO
Текст
Data model validators
TODO
Текст
Allowed examples
TODO
Текст
Not allowed examples
TODO
Текст
Endpoints
TODO
Текст
List endpoints
TODO
Текст
Get endpoints
TODO
Текст
Post endpoints
TODO
Текст
Patch endpoints
TODO
Текст