gocore-v2框架-gocore.yaml配置文件介绍

本文介绍了gocore脚手架工具,它基于yaml配置文件自动生成Go项目的Api接口、cronjob、job、中间件等代码。支持Nacos配置中心,具备AK&SK鉴权,配置文件热更新,并提供多环境切换功能。同时,详细展示了配置文件结构及其用法。
摘要由CSDN通过智能技术生成

在这里插入图片描述

Github
官方文档地址-持续更新中

作为脚手架最重要的就是描述文件,通过描述文件来定义项目信息、接口模块路由、入参出参等,通过配置信息来生成项目骨架,可以大量减少重复机械式的工作。

gocore使用yaml作为描述文件的格式,相对其他文件格式yaml能够比较好的表现出层次结构,尤其是在定义接口请求参数status时可以支持比较复杂的关系,比toml和json更加可读。

脚手架工具基于yaml配置文件生产代码,主要特性:

  • 支持Api、cronjob、job类型
    • 自动生成Api接口
      • 路由
      • 入口方法
      • 参数结构
      • bind参数验证
    • 自动生成cronjob和job入口cmd
  • 配置文件
    • 集成配置中心nacos
      • 支持AK&SK秘钥鉴权
      • 支持从nacos或本地读取配置
      • 使用nacos支持热更新
    • 配置文件多环境切换
    • 配置文件融入bin包
  • 中间件
    • mysql
    • redis
    • rocketMQ
service:
  projectName: demo #项目名称
  version: v1.0.0 #项目版本号
config: 
  cNacos: false #是否使用nacos
  cRocketMQConfig: true #是否使用rocketMQ
  cMysql: #mysql配置
  - name: app #数据库名称
    hotUpdate: false #是否热更新
    models: #model文件
    - name: user #表名称
      auto: false #是否自动建表
      fields: #表字段,gorm规则,一行一个自动
      - column:id;primary_key;type:int AUTO_INCREMENT
      - column:name;type:varchar(100) NOT NULL;default:'';comment:'用户名';unique_index
      comment: 用户表 #表备注
  cRedis: #redis配置
  - name: default #redis名称
    hotUpdate: false #是否热更新
    index: 
      db0: 0 #选择第几个db
nacosEnable: true #是否使用nacos
httpApiEnable: true #是否生成接口程序
cronJobEnable: true #是否生成定时任务
jobEnable: true #是否生成常驻任务
httpApis:
  host: 0.0.0.0 #api接口监听ip地址
  port: "80" #api接口监听ip端口
  apis:
  - prefix: /app/user #api接口前缀
    moduleName: user #模块名称
    handle: #api接口
    - name: GetUserInfo #api接口方法名称,完整路由是/app/user/GetUserInfo
      method: Any
      requestParams: #api接口请求参数
      - name: uid #字段名称
        required: true #是否必填
        type: int #字段类型
        comment: 用户ID #字段备注
        validate: required,min=1,max=100000 #validate校验规则
      responseParams: #api响应参数
      - name: detail  #字段名称
        required: true #是否必填
        type: '*User'  #字段类型,非基础字段类型,表示嵌套结构体,引用params中的结构体
        comment: 用户详情 #字段备注
        validate: ""
      - name: list
        required: true
        type: '[]*User'
        comment: 用户列表
        validate: ""
      comment: 获取用户信息
  params:
    User:
    - name: uid
      required: true
      type: int
      comment: 用户ID
      validate: ""
    - name: name
      required: true
      type: string
      comment: 用户名
      validate: ""
cronJobs:
- spec: '@every 30m' #定时任务规则,参考:github.com/robfig/cron
  job: 
    name: SyncUser #定时任务方法名称
    comment: 同步用户 #定时任务备注
jobs:
- name: InitUser #一次性任务,常驻任务方法名称
  comment: 初始化默认用户 #一次性任务,常驻任务备注
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文振熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值