Справочник API
Добро пожаловать в справочную документацию API C4G. Этот раздел предоставляет подробную информацию о публичном API C4G.
Основные компоненты
C4GFacade
Главная точка входа для операций C4G. Управляет всем рабочим процессом от получения данных Google Sheets до генерации кода и сериализации конфигураций.
public sealed class C4GFacade
{
public C4GFacade(IC4GSettingsProvider settingsProvider);
public async Task<Result<string>> RunAsync(CancellationToken ct);
}
Использование:
var settingsProvider = new YourSettingsProvider();
var facade = new C4GFacade(settingsProvider);
var result = await facade.RunAsync(cancellationToken);
if (result.IsOk)
{
Debug.Log("Генерация конфигурации успешна!");
}
else
{
Debug.LogError($"Ошибка: {result.Error}");
}
Парсеры типов
Интерфейс IC4GTypeParser
Интерфейс для реализации пользовательских парсеров типов.
public interface IC4GTypeParser
{
string TypeName { get; }
object Parse(string value);
}
Встроенные парсеры
- IntParser - Парсит целочисленные значения
- FloatParser - Парсит значения float
- DoubleParser - Парсит значения double
- BoolParser - Парсит булевы значения
- StringParser - Парсит строковые значения
- EnumParser - Парсит значения enum
Настройки
C4GSettings
Контейнер конфигурации для операций C4G.
public class C4GSettings
{
public string TableId { get; set; }
public string ClientSecret { get; set; }
public string RootConfigName { get; set; }
public string GeneratedCodeFolderFullPath { get; set; }
public string SerializedConfigsFolderFullPath { get; set; }
public Dictionary<string, SheetParserBase> SheetParsersByName { get; set; }
public Dictionary<string, IC4GTypeParser> AliasParsersByName { get; set; }
}
Парсинг таблиц
SheetParserBase
Базовый класс для парсеров таблиц.
public abstract class SheetParserBase
{
public abstract ParsedSheet Parse(string sheetName, IList<IList<object>> sheet);
}
Типы результатов
Result<T>
Общий тип результата для операций, которые могут завершиться успехом или неудачей.
public class Result<T>
{
public bool IsOk { get; }
public T Value { get; }
public string Error { get; }
public static Result<T> FromValue(T value);
public static Result<T> FromError(string error);
}