Flask, REST, validation
Yehor Nazarkin
twitter.com/nimnull
github.com/nimnull
Требования
• Что в основе?
• Что хотим получить?
• Как будем расширять?
• Где храним данные?
REST
• хорошо подходит для web сервисов
• ресурсо-ориентированный
• отсутствие состояния (в декларации)
Потребности
• представление:
players/ — GET (read many), POST (create one)
players/1 — GET (read one), PUT (update one), DELETE (delete one)
Потребности
• фильтрация/сортировки данных:
players/?filter=joined_at__gte%3D1429821631
players/?
order_fields=nickname,joined_at&order_dir=asc
Потребности
• валидация клиентского ввода
• поддержка нескольких хранилищ
• сущности по агрегированным данным
• аутентификация (cookies, basic http, token-based)
• авторизация (группы, пользователи)
• доступ групп клиентов к разным наборам атрибутов
Варианты решения
• Пишем своё
• Берем готовое решение и допиливаем
Django?
• django-tastypie
• django-rest-framework
• django-pyston
• etc
Django?
• Известные проблемы
расширяемости
• Not Invented Here
• Эволюция проекта часто влечет
отказ от поставляемых решений
Flask?
• микро-фреймворк
• основан на werkzeug & jinja2
• большое количество расширений
• На почитать — http://flask.pocoo.org
Flask?
• гибкость
• простота (относительная)
• расширяемость
Что уже есть?
• eve
• flask-restful
• flask-restless
• potion
Если пилим сами
• MethodView FTW!
• flask.ext….anything
Если пилим сами
Как проверять?
• Imperative
• Declarative
• Mixed?
Где проверять
• Данные от пользователей
• Отправка/обработка результатов
внешних сервисов
• Схема данных хранилища
Note:
ORM и подобные предлагают
собственные решения
Как проверять?
Как проверять?
формы (Django/WTF/etc)
Как проверять?
• Gladiator (py3)
• Cerberus (py3)
• Schemer
• kanone
• trafaret
Как проверять?
Как проверять?
Как проверять?
Другие проблемы?
Вопросы?
Links:
• Nested resources — https://github.com/alanjds/drf-nested-routers
• Gladiator — https://github.com/alanjds/drf-nested-routers
• Schemer — https://github.com/gamechanger/schemer
• Trafaret — https://github.com/deepwalker/trafaret

More Related Content

PDF
Authentication security
PDF
диплом
PDF
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
PPTX
Разведка боем
PPTX
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
PDF
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
PPS
PDF
Ещё один поиск Яндекса
Authentication security
диплом
«Ещё один Поиск Яндекса» Александр Кошелев, Яндекс
Разведка боем
«Где на самом деле начинается конверсия», Анастасия Берсенева, ТопЭксперт
2014.12.06 06 Алёна Паньшина — Простой обмен данными с пользователями на прим...
Ещё один поиск Яндекса

What's hot (7)

PPTX
Умное SEO - инструменты
PDF
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
PPT
Продвинутый мультисайтинг
ODP
Азы мультисайтинга
PPTX
Drupal 8 API для разработчиков
PPTX
Как не утонуть в мегабайтах JS-кода
PPT
HSE{Consult}: DevOps – новая методология разработки
Умное SEO - инструменты
15.03.19 WebPromo SEOday SEO-инсайты из логов: от WP блога до международного ...
Продвинутый мультисайтинг
Азы мультисайтинга
Drupal 8 API для разработчиков
Как не утонуть в мегабайтах JS-кода
HSE{Consult}: DevOps – новая методология разработки
Ad

Similar to Flask, rest and data (20)

PPTX
Sphinx
PPT
PPT
BPMonline OData
PPTX
Blackbox-тестирование веб-приложений
PPTX
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
PPTX
Lesson1
PPTX
OAuthоризация и API социальных сетей
PPTX
Система обработки бизнес-логики server-side приложения на Groovy
PPT
Web осень 2012 лекция 11
PDF
PDF
"xCAT: удобное администрирование дата-центра". Антон Турецкий, Badoo
PDF
"Morphology of Modern Data Center Networks: Overview
PPT
Информационная безопасность и web-приложения
PDF
Алексей Бережной - http-протокол
PDF
Построение системы аналитики
PDF
Социальный граф Одноклассников в Target Mail.Ru
PDF
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
PDF
Cоциальный граф "Одноклассников" в myTarget
PPTX
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
PDF
Обзор перспективных баз данных для highload / Юрий Насретдинов
Sphinx
BPMonline OData
Blackbox-тестирование веб-приложений
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Lesson1
OAuthоризация и API социальных сетей
Система обработки бизнес-логики server-side приложения на Groovy
Web осень 2012 лекция 11
"xCAT: удобное администрирование дата-центра". Антон Турецкий, Badoo
"Morphology of Modern Data Center Networks: Overview
Информационная безопасность и web-приложения
Алексей Бережной - http-протокол
Построение системы аналитики
Социальный граф Одноклассников в Target Mail.Ru
DUMP-2015: «Использование социального графа одноклассников в Target Mail.Ru» ...
Cоциальный граф "Одноклассников" в myTarget
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Обзор перспективных баз данных для highload / Юрий Насретдинов
Ad

More from Yehor Nazarkin (6)

PDF
Inter-process data exchange in Python
PDF
Flask, гордость и предубеждение
PDF
Chaplin.js in real life
PDF
Rest in flask
PDF
обзор Python
PDF
GAE - плюсы/минусы/подводные камни
Inter-process data exchange in Python
Flask, гордость и предубеждение
Chaplin.js in real life
Rest in flask
обзор Python
GAE - плюсы/минусы/подводные камни

Flask, rest and data