yt-gen-app/structs/backend.go

39 lines
4.8 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package structs
import uuid "github.com/satori/go.uuid"
type Backend struct {
Config []ParamConfig `yaml:"config,omitempty" json:"config,omitempty"` // Параметры, передаваемые при запуске сервера
Rest map[string]*Rest `yaml:"rest,omitempty" json:"rest,omitempty"` // Подготовка REST для сервера
RestGroups []string `yaml:"-" json:"-"` // Названия групп
}
type ParamConfig struct {
Name string `yaml:"name" json:"name,omitempty" default:"param"` // Название параметра
Type string `yaml:"type" json:"type,omitempty" default:"string"` // Тип параметра
Help string `yaml:"help" json:"help,omitempty"` // Справка помощи параметра
}
type VisField struct {
ID uuid.UUID `yaml:"id,omitempty" json:"id,omitempty"`
Name string `yaml:"name,omitempty" json:"name,omitempty"`
}
type Rest struct {
Name string `yam:"name,omitempty" json:"name,omitempty" default:"noname"` // Имя раздела запросов
GroupName string `yaml:"groupName,omitempty" json:"groupName,omitempty" default:"nogroup"` // Имя группы, в которую входит данный путь REST
Summary string `yaml:"summary,omitempty" json:"summary,omitempty" default:"Общее описание"` // Общее краткое описание
Comment string `yaml:"comment,omitempty" json:"comment,omitempty" default:"Описание"` // Описание (комментарий)
Data VisField `yaml:"data,omitempty" json:"data,omitempty"` // Модель данных, на основе которой строиться запрос
Edit []VisField `yaml:"edits,omitempty" json:"edits,omitempty"` // Список полей для редактирования
Visible []VisField `yaml:"visible,omitempty" json:"visible,omitempty"` // Список видимых полей. Если указан хоть один, то отображаются только те, которые указаны, иначе отображаются все
Invisible []VisField `yaml:"invisible,omitempty" json:"invisible,omitempty"` // Список невидимых полей. Если указан хоть один, то отображаются все кроме указанного, иначе берется правило из поля "visible". Является приоритетным и в данном случае поле "visible" игнорируется
Filter []VisField `yaml:"filter,omitempty" json:"filter,omitempty"` // Указывается список полей, по которым будет осуществляться поиск
Editable bool `yaml:"editable,omitempty" json:"editable,omitempty"` // Модель является редактируемой, т.е. необходимо сгенерировать rest для данной модели. Для данного пути будут сформированы методы GET, POST, PUT и DELETE с соответствующим путем /<path>/{id}
FieldID VisField `yaml:"fieldId,omitempty" json:"fieldId,omitempty"` // Поле, которое является ключевым при работе с конкретной записью. Если модель данных указана db, то ключевое поле берется из описания БД и игнорируется.
Roles map[string][]string `yaml:"roles,omitempty" json:"roles,omitempty"` // Список ролей, которым разрешено работать с данным. Операция: массив строк с названием ролей. Если не указано, то все роли. Операция для просмотра списка: LIST
Methods []string `yaml:"methods,omitempty" json:"methods,omitempty"` // Методы, которые нужно генерировать. Если указаны, то стандартные методы и параметр "editable" игнорируется
ParamQuery []Field `yaml:"paramQuery,omitempty" json:"paramQuery,omitempty"` // параметры запроса
Unsafe bool `yaml:"unsafe,omitempty" json:"unsafe,omitempty"` // Раздел запроса не нужно защищать
}