Categorygithub.com/LubyRuffy/gorestful
repositorypackage
0.0.0-20221016131201-3c7eceabff10
Repository: https://github.com/lubyruffy/gorestful.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author

# README

gorestful

用函数直接生成前后端分离的restful框架,并且启动服务。

很多情况下,golang都用于进行后端开发,最多配置一个api接口,但是如果我们想要进行一些页面的展示,就会比较痛苦,需要写一些前端页面,做前后端分离,这时对于后端人员而言时间大量浪费在了基础前端知识。如果有一个框架,能够自动生成后端model对应的view,就能比较快的让后端程序员回归到业务本身。先完成流程,再优化界面。

满足如下前提:

  • 直接生成gorm对应的模型的restful api
  • 可选直接生成对应的增删改查页面
  • 内嵌到golang二进制文件中
  • 做快速的概念验证,而不是完善所有的界面

features

  • 支持后端api生成
    • 列表
      • 支持搜索
    • 查看详情
    • 删除
    • 修改
    • 新增
    • 字段配置显示
      • 支持自动提取字段列表
        • 识别gorm.model
        • 识别json tag,解决大小写的问题
        • 识别sql.NullTime,解决空值的问题
        • 识别enum类型的数字
        • 提取是否允许空值
        • 识别指针结构,不应该加载
      • 支持字段黑名单,主要解决在自动提取的情况下排除少数字段的问题
      • 支持自定义格式
      • 支持bool类型字段的更新(默认情况下false作为空值不能更新到数据库)
    • 支持认证
      • 内嵌自动生成表单的认证
      • 支持跳转到第三方的认证
      • 支持且只支持header头带认证信息
    • 支持权限控制,上层通过GetDb来控制,包括where条件,joins联合查询等
    • 支持事件通知
      • 支持插入数据事件通知
    • 支持自定义query回调,主要用与在joins场景下的多表条件(WithQueryFunc)
    • 支持自定义的删除操作替换,主要用与在joins场景下的多表条件(WithDeleteFunc)
    • 支持enum类型的显示替换:SetEnumField(field, [][]interface{})
  • 支持前端页面生成
    • 列表
      • 支持搜索
    • 新增
      • 自动处理整型
        • 自动处理int/uint/int64类型
        • 自动处理bool类型,对应select
    • 修改
    • 删除
    • 详情
    • 字段配置显示(由后端配置决定)
    • 支持认证
    • 支持权限控制
    • 倒序排列
    • 分页
    • 错误提示
    • 空值提示必填,且自动聚焦

使用方法:

最简单的使用

绑定到不同的url路径

内嵌用户认证

这里只有认证的概念没有授权的概念,也就是说用户等级是一样的,资源并不会绑定到特定用户:

资源授权访问

R是资源,U是用户,有一个关联表绑定了R<->U,这时候就要进行联合查询和权限判断,只显示当前用户的内容: