首页 文章 精选 留言 我的

精选列表

搜索[AI生态友好],共10004篇文章
优秀的个人博客,低调大师

Go - 一个对新手很友好的项目(带界面)

这个开源项目就是:go-gin-api ,目前 800+ Star。 go-gin-api 是基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发,同时增加了更多限制,约束项目组开发成员,规避混乱无序及自由随意的编码。 下载后可直接运行 $gitclonehttps://github.com/xinliangnote/go-gin-api $cdgo-gin-api $gorunmain.go-envfat//-envfat设置为测试环境 首先进入到服务初始化界面。 接下来填写 MySQL、Redis 配置信息,填写完成后,点击初始化按钮。 如上图所示,表示服务初始化成功,需要再重新启动服务,服务启动后就会看到登录界面。 使用默认用户信息:admin,admin 登录即可,登录成功后就会看到仪表盘界面。 已集成哪些功能? Panic 时邮件告警通知 在后台可配置邮件发件人信息,如下图所示: 邮件模板如下: 接口鉴权 在后台可设置调用方 KEY、调用方 SECRET、调用方对接人、备注等信息。 将创建的调用方的 KEY、SECRET 发给调用方即可,可以对调用方进行 启用/禁用/删除 等操作,还可以对其授权可访问的接口。 接口鉴权是基于 HTTP Header 中的两个参数 Authorization、Authorization-Date 存储签名信息,代码中提供了 3 种语言的加密算法:Go、PHP、JS。 代码生成工具 gormgen,基于数据表生成三个文件,以 admin 表为例会生成:gen_table.md 表注释的 MD 文档、gen_model.go 表字段的结构体、gen_admin.go 表 CURD 操作代码。 意义:在进行业务需求开发时,创建完数据表后,执行代码生成工具,常用的 CURD 操作全部生成完毕,使用的时候只需要 . 后面的方法即可,这样大大提高了业务开发效率。 handlergen,基于定义的 Handler 文件中 type interface{} 中接口方法,进行生成文件。 例如,定义的方法为: //Login管理员登录 //@TagsAPI.admin //@Router/api/admin/login[post] Login()core.HandlerFunc 生成后的方法为: typeloginRequeststruct{ } typeloginResponsestruct{ } //Login管理员登录 //@Summary管理员登录 //@Description管理员登录 //@TagsAPI.admin //@Acceptmultipart/form-data //@Producejson //@Success200{object}loginResponse //@Failure400{object}code.Failure //@Router/api/admin/login[post] func(h*handler)Login()core.HandlerFunc{ returnfunc(ccore.Context){ } } 意义:本次需求的研发负责人通过定义 type interface{} 的方式,定义出需要开发的方法,执行代码生成工具,每个方法的空实现都会生成在一个单独的文件中,开发人员只需去实现各自方法即可,便于进行分工和代码管理。 接口日志 通过 链路 ID 可以将 请求信息、响应信息、调用第三方 HTTP 接口的信息、调用第三方 gRPC 接口的信息、调试信息、执行的 SQL 信息、执行的 Redis 信息 串起来,记录到日志中。 点击某一行可查看日志详情。 接口文档 通过 handlergen 生成的代码,自带接口文档。 接口指标 项目中使用 prometheus 进行指标收集,项目中默认开启 metrics 记录,可以通过 http://127.0.0.1:9999/metrics 即可查看。 GraphQL 项目中使用 gqlgen 实现了 GraphQL 查询,会发现与 gqlgen init 初始化的 demo 不同,是因为代码已经集成到 go-gin-api 中,比如集成了项目 core 包中的 链路、日志 等。 目前仅实现了 Demo, resolver 使用的是模拟数据,不过使用可复用的 service 也已经实现了,在代码已注释,感兴趣的可以深入研究。 Prometheus 启动 Prometheus 的配置文件,可参考: ./deploy/prometheus/prometheus.yml 类似效果: Loki Loki 是一个水平可扩展,高可用性,多租户的日志聚合系统,有兴趣可以研究一下。 启用 Loki 的配置文件,可参考: ./deploy/loki/loki.yaml ./deploy/loki/promtail.yaml 已使用哪些组件? 支持 rate 接口限流 支持 panic 异常时邮件通知 支持 cors 接口跨域 支持 Prometheus 指标记录 支持 Swagger 接口文档生成 支持 GraphQL 查询语言 支持 trace 项目内部链路追踪 支持 pprof 性能剖析 支持 jwt 接口鉴权 支持 errno 统一定义错误码 支持 zap 日志收集 支持 viper 配置文件解析 支持 gorm 数据库组件 支持 go-redis 组件 支持 RESTful API 返回值规范 支持 gormgen、handlergen 代码生成工具 支持 web 界面,使用的 Light Year Admin 模板 项目地址 源码地址 https://github.com/xinliangnote/go-gin-api 在线文档 https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5 如果您有好的想法和建议,欢迎加好友交流。

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册