← все DSL

API

.api

Описание API: системы → группы → методы с Request/Response/Notify и типизированными полями. На выходе — клиенты, сервер, документация.

Шпаргалка по синтаксису
Файл для генерации API
    Секция Errors содержит описание сетевых ощибок
    Секция Structs содержит описане кастомных структур
    Секция API содержит описание систем, групп методов и самих методов

Стркутура Errors
    Errors - В начале строки говорит о переходе к секции
    Error: %ERROR_NAME_WITH_BASE_DESC% = "Текст ошибки" // %comment%

Стркутура Structs
    Structs - В начале строки говорит о переходе к секции
    Struct: %StructName%: %BaseStruct% // %comment%
        %fieldType% %fieldName% = %fieldDefValue% // %comment%       - Обязательный отступ с начала строки. Описание параметров см. API

Стркутура API
    API     - В начале строки говорит о переходе к секции
    System: %system_name% // %comment%      - В начале строки. Создание системы для API
    Group: %Group name or group comment% // %comment%       - В начале строки. Создание группы методов
        Если появился метод, а группа не задана - формируется специальная группа по названию системы %System Name%
    Method: %method.submethod.do_it% // %comment%   - В начале строки. Создание метода с указанным названием, рекомендуется разделять разделы метода через ".", а сложное название части метода писать snake-case'ом
    
        %MessageType%: %BaseStruct% // %comment%   - Обязательный отступ с начала строки
            %MessageType% - Тип сообщения описываемой части метода:
                Request     - Запрос
                Response    - Ответ
                Notify      - Уведомление
            : %BaseStruct% - Не обязательно, но если есть - еквивалентен EXT_TYPE, т.е s<%%> - указывает структуру из секции Structs на базе которой будет формироваться данный тип сообщения или m<%%,%%,%%> - На базе другого сообщения
    
        %fieldOpt% %fieldType% %fieldName% = %fieldDefValue% // %comment%       - Обязательный отступ с начала строки, желательно, что бы был больше чем у %MessageType%
            %fieldOpt%  - Не обязательно. Параметр отвечает за обязательность параметра при формирования метода.
                        Отсутствует или равен "o" - опционально, "r" - обязателен.
                        "x" - данный парамерт будет присвоен data текущего сообщения
            %fieldType% - Обязательно. Тип поля:
                        Базовые типы (BASE_TYPE):
                            dyn - dynamic
                            obj - Object
                            str - String
                            bln - bool
                            int - int
                            dbl - double
                            num - num
                        Группированные сложные типы, такие как список или ключ-значение (G_TYPE):
                            lst<T>      - List<T> где T - Любой тип, как из BASE_TYPE, так и EXT_TYPE
                            map<T1,T2>  - LinkedHashMap<T1, T2> где T1 - Любой тип из BASE_TYPE; Т2 - Любой тип, как из BASE_TYPE, так и EXT_TYPE
                        Прочие типы (EXT_TYPE):
                            s<%StructName%>                                         - Ссылка на структуру, берется название структуры
                            m<%system_name%,%method.submethod.do_it%,%MessageType%> - Ссылка на метод, на базе которого будет строится текущий тип
            %fieldName% - Обязательно. Название поля в camelCase'е
            = %fieldDefValue% - Не обязательно. Значение по умолчанию, которое будет подставляться в метод вызова
Генерация через Dart sidecar требует авторизации — войди или зарегистрируйся. WS-соединение защищено короткоживущим HMAC-токеном; токен выдаётся только аутентифицированным пользователям.
не подключено
Источник DSL 0 строк · 0 симв.
Результат
Нажми Сгенерировать, чтобы отправить DSL на Dart-sidecar и получить сгенерированные файлы.
WS-лог