Отдельная тема для интеграций — сериализация данных. Про неё почему-то мало говорят на "курсах по интеграциям и проектированию API".
А это, между тем, чуть ли не половина успеха интеграционного решения.
Вот, например, CSV. Существует же чуть ли не с 1972 года, говорят, его удобно было на перфокартах пробивать. И ведь до сих пор активно используется! Весь ETL, вся BigData, весь ML на нём только и держится.
А почему? Потому что
* человекочитаемый
* самый легковесный из человеко-читаемых (из оверхеда — только разделители, кавычки, переносы строк и символы экранирования — почти ничего, если сравнивать с JSON или XML)
* самый быстрый для обработки (до 300 тыс. строк в сек, какое API столько выдержит?), отлично параллелится
С другой стороны:
* не стандартизованный (а вы видели CSV с табуляцией? А с палками | в качестве разделителей? А с крышками ^?)
* бессхемный, нетипизированный
* плоский
* невероятно хрупкий — одна лишняя запятая, кавычка или разрыв строки, и конец обработке
Но если мы это понимаем, то можем предположить, что на каждую проблему должно быть своё решение. И действительно — есть CSV Schema , правда в статусе вечного драфта. С другой стороны, есть стандарт метаданных для описания табличных данных в Вебе: https://www.w3.org/TR/tabular-data-primer/
Как обычно, если нет одного стандарта, значит их будет два.
Ну и, конечно, есть альтернативный формат на основе JSON, берущий лучшее из двух миров — JSON Lines, JSONL.
Выглядит примерно так:
["Name", "Session", "Score", "Completed"]
["Gilbert", "2013", 24, true]
["Alexa", "2013", 29, true]
["May", "2012B", 14, false]
["Deloise", "2012A", 19, true]
Решена проблема с внезапными разрывами строк, вложенными объектами и неоднозначностью разделителей. Правда, для него даже RFC пока нет.
В общем, всё укладывается в теорию гибридов Клейтона Кристенсена — в процессе подрывной инновации индустрия проходит стадию гибридов: парусно-паровые суда, гибридные автомобили, я в одном музее выдел даже гибрид шпаги и пистолета. У нас в интеграциях — странные наполовину JSONы, наполовину CSV; или вот диковинные гибриды JSON и XML (в NoSQL языке запросов JSONiq):
[ xs:date("1066-10-14"), <mercury>Hg</mercury>, "ice cream" ]
Так что, если вы видите какой-то гибрид (например, гибрид редактора кода и ИИ-генератора), это значит, что мы посреди подрывной инновации.
Правда, Кристенсен это писал про смешанное обучение, но пока подрыва школьной системы не видно — тут ковид одновременно и дал мощный толчок, и так всех напугал, что все хотят вернуться обратно к очным форматам. Ну посмотрим.
From Channel
[[Системный сдвиг]]
https://t.me/systemswing/823
%% Forward By
%%