Documentation ¶
Index ¶
Constants ¶
View Source
const ( VersionLess = 0 VersionEqual = 1 VersionMore = 2 VersionLen = 3 )
View Source
const ( PluginFileMaxSize = 512 * 1024 * 1024 PluginFileExt = ".zip" PluginFileWebDir = "web" PluginFileBackDir = "backend" PluginServerDir = "server" PluginFileWebDistDir = "dist" PluginFileWebBuildDir = "build" PluginFileConfigDir = "config" PluginFileWorkspaceDir = "workspace" PluginUpgradeDir = "upgrade" PluginFileConfigYaml = "plugin.yaml" PluginSoFile = "backend.so" PluginFileUpgradeYaml = "upgrade.yaml" PluginFileLogo = "logo.svg" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Ability ¶
type Ability struct { Id string `yaml:"id" json:"id"` Name string `yaml:"name" json:"name"` Desc string `yaml:"desc" json:"desc"` Type string `yaml:"type" json:"type"` // 主系统支持的能力 Version string `yaml:"version" json:"version"` // 主系统支持能力的版本 Function map[string]string `yaml:"function" json:"function"` // handler函数组 Config map[string]string `yaml:"config" json:"config"` // 每个能力都有自己的配置 }
type Api ¶
type Api struct { Type RouterType `yaml:"type" json:"type"` // addition、replace、suffix、prefix、external Methods []string `yaml:"methods" json:"methods"` Url string `yaml:"url" json:"url"` Function string `yaml:"function" json:"function"` // handler函数 }
Api 插件自定义的路由
type Permission ¶
type PluginConfig ¶
type PluginConfig struct { *Service `yaml:"service" json:"service"` Apis []*Api `yaml:"apis" json:"apis"` Modules interface{} `yaml:"modules" json:"modules"` // 前端使用,用于生成前端插槽 Abilities []*Ability `yaml:"abilities" json:"abilities"` // 插件能力的描述 WebServiceUrl string `json:"web_service_url,omitempty"` // 本地开发时,访问插件前端资源的路由 }
type RouterType ¶
type RouterType = string
const ( RouterTypeAddition RouterType = "addition" RouterTypeExternal RouterType = "external" RouterTypeReplace RouterType = "replace" RouterTypePrefix RouterType = "prefix" RouterTypeSuffix RouterType = "suffix" )
addition和external的异同:
前者是加在主系统里的,补充主系统的接口。 后者是插件提供一个暴露到到程序外面的接口,提供对外的http服务。 二者是根据业务来区分的,最终url不同,调用的函数也不同:前者是自定义,后者强制OnExternalHttpRequest 当然,二者底层实现没有区别,所以硬要混着用也行:)
type Service ¶
type Service struct { AppUUID string `yaml:"app_id" json:"app_id"` // 生成插件zip文件时自动生成appUUID InstanceUUID string `yaml:"instance_id" json:"instance_id"` // 内部流转的时候使用的,技术上是可以代替appUUID。引入的原因是appUUID不可靠 Name string `yaml:"name" json:"name"` Version string `yaml:"version" json:"version"` Description string `yaml:"description" json:"description"` Language string `yaml:"language" json:"language"` // 开发语言 LanguageVersion string `yaml:"language_version" json:"language_version"` Icon string `json:"icon"` HostVersion string `yaml:"host_version" json:"host_version"` // 生成zip就已经有Host MinSystemVersion string `yaml:"min_system_version" json:"min_system_version"` // 能允许插件的主程序的最小版本 Contact string `yaml:"contact" json:"contact"` // 开发者的联系方式 Status StatusType `yaml:"status" json:"status"` Config []*Config `yaml:"config" json:"config"` //插件自己的配置 Permission []*Permission `yaml:"permission" json:"permission"` // 插件自身的权限 Path string `yaml:"path" json:"path"` // 非config使用,nginx加载前端资源的路径 }
type StatusType ¶
type StatusType = int
const ( PluginStatusUploaded StatusType = 1 // 已上传 PluginStatusRunning StatusType = 2 // 已启用 PluginStatusStopping StatusType = 3 // 已安装/已停用 )
Click to show internal directories.
Click to hide internal directories.