Используя API мы видим красивый фасад. Что за ним скрывается, какая сложность? А может все работает волшебным образом? Допустим нам нужно получить через API список элементов инфоблока, у этих элементов несколько свойств, среди которых могут быть привязки к другим элементам инфоблока, у которых тоже выберем набор свойств. Как с этим справляется backend, давайте разбираться. GraphQL API состоит из набора типов. Экземпляры типов объединяются в структуры и отдаются клиенту в форме json. Есть базовые типы, скалярные: строка, целое и дробное числа, булевый и т.д. Есть типы-объекты, в нашем случае: элемент инфоблока, раздел инфоблока, элемент highload блока, свойство элемента, пользовательское свойство раздела и т.д. Последние, кстати, делятся на целую кучу вариаций: список, файл, справочник и много чего еще. Даже тип для видео есть. Также имеется специальный тип список элементов (какого-то другого типа). У каждого типа на backend есть своя функция-relolver. Если упростить, она выдергивает да