Framework foton
Инструмент для профессиональной разработки web приложений
Для работы с GraphQL необходимо получить токен и обращаться через запрос: https://вашсайт/graph.micro?token=ваштокен
Отправляя тело запроса в json в таком виде

{
    "input": {
        "test": {
            "orm": {
                "table": {
                    "table":"seo",
                    "field":"title,id"
                },
                "where": {"w":{"id":3}}                
            }
        },
        "test2": {
            "orm": {
                "table": [
                    "menu",
                    "href,id,sorts"
                ],
                "where": {"w":{"sorts":"|test.0.id|"}},                
                "sorts":["id","DESC"],
                "lim":[5,0]                
            }
        }
    },
    "output": {
        "mytest": {
            "title":"|test|"             
            
        },
        "mytest2": {
                "id":"|test2|"           
            
        }
    }
}

test — в данном случае любое название на латинице к которому мы можем обращаться в самих запросах.
Orm — это способ обработки наших данных, при указании orm мы далее в ключах json обьекта используем методы orm Foton, после этого мы можем добавить еще такой же запрос к системе, в примере это test2 — это также любое название на латинице уникальное в рамках текущего запроса. И в этом запросе мы уже можем использовать данные полученные из первого запроса, например вот так |test.0.id|, так как в ответ из orm нам выдается коллекция, то мы обращаемся к элементам этой коллекции указывая согласно стандартам наследования доступ к вложенным элементам через конструкцию .ключ, в данном случае мы берем id первого элемента коллекции с индексом 0.
Также мы можем брать всю коллекцию, если она будет работать в конструкции данного запроса используя просто |test|, в случае с выводом нам не нужно задумываться над этим, так как нам просто нужно вывести данные удобным для нас образом.
За вывод отвечает ключ "output"
В этом json объекте мы также вместо ключей пишем любые уникальные имена на латинице в рамках текущего запроса.
Мы можем вывести полностью всю коллекцию |test2| или ее часть, например |test.0.id|, конечно изначально для теста пока мы не уверены, что веренет нам система необходимо получить полную коллекцию данных. Если данные не найдены, то если при обращении у нас указана вся коллекция система просто выдаст пустой обьект json, если же у нас указаны индексы система вернет ошибку.

Также для установки правил доступа используются сигнатуры контроллера модуля graphQL dev/service/micro/graph/return/class.php

$arrTable=['error404','html']; - таблицы, доступ к которым запрещен
$arrRules = ['ALTER','DELETE']; - SQL команды, которые запрещены

также в модуле запрещены следующие методы работы с orm ради безопасности и поддержания целостности системы:
            'forq',
            'q',
            'c',
            'dbdel',
            'sqlDumpFile',
            'structureTable',
            'formatTable',
            'siteDump',
            'fieldTable',
            'execute',
            'selectId',
            'columnType',
            'is',
            'tableField',
            'copyTable',
            'copyDateTable',
            'copyDates',
            'renameTable',
            'ins',
            'fileInsert',
            'tableDesc',
            'tableList',
            'createIndex',
            'dropIndex',
            'back',
            'cq',
            'query',
            'echo',
            'structureTable',
            'columnType'

Более полную информацию по данному и другим запросам вы можете найти в postman коллекции Foton

Важно!!! Перед работой с системой необходимо в основном файле настроек core/setting/main.php сменить настройку micro с false на true, перед этим предварительно необходимо изменить все ключи для доступа к системе, информацию об этом можно посмотреть в каждм файле setting.json каждого микросервиса в системе, например dev/service/micro/alisa/setting.json, при указании типа авторизации token, он заполняется в файле token.php, если это базовая авторизация, то доступ указывается в самом файле настроек, а также в файле .htpasswd в корне сайта и т. д., подробнее описано в разделе Авторизация документации по микросервисной архитектуре.

© Copyright 2026 Разработано на Framework Foton
Продукт зарегистрирован в Роспатенте