Как использовать 1с битрикс в качестве сервера для API?

Мне нужно выводить информацию с 1с битрикс на поддомен. Это информация должна браться из базы битрикса и выдваться мне на поддомен, где я уже с нею должен проводить работу.

Никак не получается сделать возможность запроса данных.

<?php
require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php");
$APPLICATION->SetTitle("Калькулятор");

$IBLOCK_ID = intval($arParams['IBLOCK_ID']);
if ($IBLOCK_ID <= 0) {
    $IBLOCK_ID = 34;
}

if (!CModule::IncludeModule("iblock")) {
    die('iblock module is not included!');
}

$arSort = array("SORT" => "ASC", "NAME" => "ASC");
$arFilter = array("IBLOCK_ID" => $IBLOCK_ID, "ACTIVE" => "Y");
$obIBlockResult = CIBlockElement::GetList($arSort, $arFilter, false, false, array("ID", "NAME","FILTER_PRICE", "MASS", ""));


$data = array();
while ($arFields = $obIBlockResult->GetNext()) {
    $data[] = $arFields;
}

if (isset($_GET['ALL'])) {
    echo json_encode($data);
    exit;
}


if (isset($_GET['DETAIL_IMAGE'])) {
    $pictureUrl = CFile::GetPath($_GET['DETAIL_IMAGE']);
    echo CUtil::JSEscape($pictureUrl);
    exit;
}

if (isset($_GET['ELEMENT_ID'])) {
    $elementId = intval($_GET["ELEMENT_ID"]);
    $obIBlockResult = CIBlockElement::GetByID($elementId);

    if ($obIBlockResult && $obIBlockResult->SelectedElement()) {
        $result = [];
        while ($ob = $obIBlockResult->GetNextElement()) {
            $arFields = $ob->GetFields();
            $arProps = $ob->GetProperties();
            $result[] = $arProps;
        }
        var_dump($result);
        echo json_encode($result);
    } else {
        http_response_code(404);
        echo "Элемент не найден";
    }
}
?>

При попытке сделать запрос на этот url с кодом ALL, чтобы просто получить данные нужные, мне в ответ присылается header страницы + кусок информации.

Если я пробую убрать добавление header, то у меня просто не загружается страница, соответственно получаю 500 ответ.

Прошу подсказать способы, как мне информацию выводить.

Вот мини код, который пытаюсь вывести

import requests

url = "url"

response = requests.get(url)

if response.status_code == 200:
    print("Ответ от сервера:")
    print(response.text)  

    try:
        data = response.json()
        print("Данные в формате JSON:")
        print(data)  
    except ValueError as e:
        print("Ошибка при декодировании JSON:", e)
else:
    print(f"Ошибка: {response.status_code}")

Ответы (1 шт):

Автор решения: Виктор Карев

Чтобы не выводился header, нужно в начале файла делать вызов

require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

а в конце желательно

require($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
→ Ссылка