fast-api

module
v0.0.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 10, 2024 License: BSD-3-Clause

README

fast-api

介绍

基于gin+gorm的极简api服务,真正意义上的轻量级开发框架,内置的api/fast路由组提供了基于 restful风格的默认CRUD操作数据表。

软件架构

gin+gorm,数据库支持mysql、sqlite、postgresql、sqlserver

开发环境

Go1.23.0

安装依赖
go mod tidy
配置文件 /config/application.yml
1. 开启极简 API
api:
  port: #端口
  fast: true #开启
  fastGroup: /fast-api #fast-api的路径前辍,默认为/fast-api
  serverName: FastApi #服务名称,可选参数 
  methods: GET, POST, PUT, DELETE, OPTIONS #允许的请求方式,不填默认所有
  disableSnowflakeId: false #禁用雪花ID,默认启用 

或指定允许操作的表名为白名单

api:
  fast: ["user", "logs"] #开启白名单模式
2. 自定义路由
api:
  routes:
    - url: /login #绝对路径
      method: POST #请求方式
      handler: LoginHandler #通过函数处理map的key选择处理函数
3. 设置数据源
api:
  datasource:
    # prometheus: 支持配置prometheus
    config: #gorm的配置,具体选项参考gorm项目文档
      prepareStmt: true
      allowGlobalUpdate: true
      disableAutomaticPing: false
    pools: #数据库连接池配置
      maxOpenConns: 20
      maxIdleConns: 10
      connMaxLifetime: 60000
      connMaxIdleTime: 600000
    connections: #数据库连接设置
      databaseName: #数据源名,一般指库名
        driver: mysql #数据库类型,支持mysql、sqlite、postgresql、sqlserver
        connectString: username:password@tcp(localhost:3306)/dbname
fast-api内置的CRUD 接口
接口请求规则: /fast-api/:db/:table
注: db=数据库名,table=表名
1. 新增数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/create
请求方式: POST
参数格式: json、form表单
注意: 提交字段为文件类型时,该表下必须要有filename字段
2. 更新数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/update
请求方式: PUT
参数格式: json、form表单
注意: 提交字段为文件类型时,该表下必须要有filename字段
3. 删除数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/delete
请求方式: DELETE
参数格式: json、form表单
json示例: {id: 123456} #或 {id: [123456]}
4. 查询数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/read
请求方式:  GET
参数格式: json、url参数
json参数示例: {id: 123456}
url参数示例: id=123456
分页参数示例: {
  count: false, #是否只返回总数
  export: false, #是否导出Excel
  page: {
    pageSize: 20,
    pageIndex: 1,
  },
  query: [{
    id: 2000
  }],
  orderBy: [{
    id: 'desc'
  }], 
  select: ['field1', 'field2'], #选择字段
  data: [] #返回数据
}
注意: 分页参数格式只支持json
返回数据: {
  result: {
    data: [...], #返回查询数据
    page: { pageSize, pageIndex, totalPages },
    total: 99999,
  },
  message: 'ok',
  errorCode: 0,
}
5. 查询联表数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/read-join
请求方式:  GET
参数格式: json、form表单
json参数示例: {id: 123456}
分页参数示例: {
  count: false, #是否只返回总数
  export: false, #是否导出Excel
  page: {
    pageSize: 20,
    pageIndex: 1,
  },
  query: [{
    id: 2000
  }],
  "joins": [{ #多表联查
    "table": "salary", #表名
    "alias": "a", #别名
    "joinMode": "inner" #联表方式
  }, {
    "table": "archives",
    "alias": "b",
    "joinMode": "Inner",
    "onList": [{
      "name": "b.id",
      "value": "a.archives_id",
      "algorithm": "EQ"
    }]
  }],
  orderBy: [{
    id: 'desc'
  }],
  select: ['a.field1', 'b.field2'], #选择字段
}
注意: 分页参数格式只支持json
6. 导入数据
接口地址: //${服务地址:端口}/fast-api/:db/:table/import
请求方式:  PUT
参数格式: json、form表单
json参数示例: {fieldName: blob}
7. 下载文件
接口地址: //${服务地址:端口}/fast-api/:db/:table/:field/download
请求方式:  GET
参数格式: json、form表单
json参数示例: {id: 123123}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL