Recloud Wiki 2025.2 Help

Создание модуля

В этом руководстве описан процесс создания собственного модуля для 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: Название категории

Создание собственного модуля

Для создания собственного модуля выполните следующие шаги:

  1. Создайте структуру каталогов модуля (frontend, backend, product.json)

  2. Разработайте необходимую функциональность в виде DLL-библиотеки

  3. Поместите DLL-библиотеку и все зависимости в папку backend

  4. Создайте файл product.json с метаданными вашего модуля

  5. Протестируйте модуль в локальной среде

  6. Упакуйте модуль для распространения

Рекомендации по разработке

  • Используйте уникальный UUID для идентификатора модуля

  • Предоставьте понятное и информативное описание модуля

  • Укажите корректные категории для облегчения поиска модуля

  • Обеспечьте совместимость с текущей версией GML

  • Документируйте API и функциональность вашего модуля

Примеры модулей

Вы можете ознакомиться с примерами существующих модулей:

Дополнительные ресурсы

Last modified: 01 July 2025