LINUX.ORG.RU

Кто как использует python для создания API? Какая-то фигня получается...

 , , , ,


3

2

Добрый день.

Поймал себя на том, что при написании какого-либо веб-приложения принято:
1. Описать модель данных, в котором:
поле:тип
поле:тип
...
поле:тип
2. Эту модель замаршаллить специальным маршаллизатором по схеме, в которой
поле:тип
поле:тип
...
поле:тип
3. Эту модель для того, чтобы UI сделать, описать в любимом фреймворке, и там
поле:тип
поле:тип
...
поле:тип
4. Валидатор если писать, в нём тоже... Ну вы поняли.
Периодически натыкался на попытки интеграции всего этого, но слишком сложные. Что, так все и копипастят???

UPD. Всем спасибо, похоже, пора с фласка перелезать на DRF.

★★★★★

Последнее исправление: Shadow (всего исправлений: 1)

Ответ на: комментарий от silver-bullet-bfg

JSON не реализован на уровне языка (что не удивительно) или стандартной библиотеки (а вот это для меня было внезапно), поэтому для данного формата используются энкодеры/декордеры различной степени кривости.

«encoding/json» в стандартной библиотеке который обрабатывает все стандартные типы.

Kazun3500
()
Ответ на: комментарий от anonymous

Да ладно, до жабы с классом с интерфейсами на каждый чих всё равно далеко.

Shadow ★★★★★
() автор топика
Ответ на: комментарий от Kazun3500

За статью спасибо. Но то, что в ней написано, как раз показывает, что валидацию нормально не сделать, увы. Для каждого эндпоинта API так извращаться - это сведёт на нет все достоинства Go.

Как уже писалось выше - если в питоне все «обмазать» тайпхинтами то код в плане надежности по типам будет сравним с js и тайпскриптом

К сожалению, нет, с тайпскриптом сравним он не будет. Он будет сравним с тайпхинтингом в php.

dimuska139 ★★
()
Ответ на: комментарий от Shadow

Сложные запросы сложно оптимизировать. Индексы строить к сложным запросам - то еще удовольствие. Да и зачастую для сложных запросов не получится ORM юзать.

Но приведу все же более жизненный пример. У тебя есть, скажем, API, которое возвращает список чего-либо с постраничной навигацией. То есть тебе нужно из базы достать 100 записей (LIMIT, OFFSET), а также посчитать общее количество записей, попадающее под условия (чтобы в интерфейсе нарисовать пагинатор). Как ты это сделаешь одним запросом средствами ORM?

dimuska139 ★★
()
Ответ на: комментарий от dimuska139

Понял, 2 запроса. Спасибо.

Shadow ★★★★★
() автор топика

Тебе не нужен ни питон, ни голанг. Elixir уже зрел. У него есть хороший бекенд Phoenix. Бери и пользуйся.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.