Структура
В этом руководстве описан процесс создания собственного модуля для GML. Модули позволяют расширять функциональность лаунчера и серверной части, добавляя новые возможности и интеграции.
Структура модуля
Каждый модуль GML имеет стандартную структуру каталогов:
module-name/
├── frontend/ # Файлы для фронтенд-части (пока не задействована)
├── backend/ # DLL-файлы и зависимости для бэкенд-части
└── product.json # Метаданные модуля
Папка frontend
Папка frontend
предназначена для хранения файлов, связанных с пользовательским интерфейсом модуля. В текущей версии
GML эта папка пока не задействована, но в будущих версиях будет использоваться для хранения компонентов
пользовательского интерфейса.
Папка backend
Папка backend
содержит все необходимые DLL-файлы для работы модуля на стороне сервера. Здесь должны находиться:
- Основная DLL модуля (например,
Gml.Web.Api.OAuth2.dll
) - Все зависимости, необходимые для работы модуля
- Дополнительные файлы конфигурации (если требуются)
Пример содержимого папки backend
:
backend/
├── Gml.Web.Api.OAuth2.dll # Основная DLL модуля
├── Dependency1.dll # Зависимость 1
└── Dependency2.dll # Зависимость 2
Файл product.json
Файл product.json
содержит метаданные модуля, которые используются системой GML для идентификации, отображения и
управления модулем. Этот файл должен находиться в корневой директории модуля.
Пример содержимого файла product.json
:
{
"Id": "01976509-b6b1-7a93-885f-d6c55a7fb914",
"Name": "Oauth",
"Description": "Внедрите интеграцию Oauth в свой проект",
"ProjectLink": "https://gml.recloud.tech",
"ImageUrl": "https://recloud.tech/product-voice.png",
"IsFree": true,
"Price": 0.0,
"Categories": [
{
"Id": "2b4a589e-125d-4e75-90a1-2d091ebc4144",
"Name": "Авторизация"
}
]
}
Описание полей product.json
Поле | Тип | Описание |
---|---|---|
Id | string (UUID) | Уникальный идентификатор модуля в формате UUID |
Name | string | Название модуля, отображаемое в интерфейсе |
Description | string | Краткое описание функциональности модуля |
ProjectLink | string (URL) | Ссылка на страницу проекта или документацию |
ImageUrl | string (URL) | Ссылка на изображение/иконку модуля |
IsFree | boolean | Флаг, указывающий, является ли модуль бесплатным |
Price | number | Цена модуля (если IsFree = false) |
Categories | array | Массив категорий, к которым относится модуль |
Каждая категория в массиве Categories
содержит следующие поля:
Id
: Уникальный идентификатор категорииName
: Название категории
Создание собственного модуля
Для создания собственного модуля выполните следующие шаги:
- Создайте структуру каталогов модуля (frontend, backend, product.json)
- Разработайте необходимую функциональность в виде DLL-библиотеки
- Поместите DLL-библиотеку и все зависимости в папку backend
- Создайте файл product.json с метаданными вашего модуля
- Протестируйте модуль в локальной среде
- Упакуйте модуль для распространения
Рекомендации по разработке
- Используйте уникальный UUID для идентификатора модуля
- Предоставьте понятное и информативное описание модуля
- Укажите корректные категории для облегчения поиска модуля
- Обеспечьте совместимость с текущей версией GML
- Документируйте API и функциональность вашего модуля
Примеры модулей
Вы можете ознакомиться с примерами существующих модулей: