首页 > 其他分享 >简洁、轻量级的 Go API 框架

简洁、轻量级的 Go API 框架

时间:2024-01-07 12:34:54浏览次数:30  
标签:集成 框架 api mono API Go gin 日志 轻量级


本次分享的框架是「gin-api-mono」

介绍 gin-api-mono 前先了解 go-gin-api

go-gin-api 这是一个基于 Gin 的 API 框架,它提供了 WEB 界面一键安装的方式,让你可以快速启动一个开箱即用的 Go 项目。无论你是否有项目经验,这个框架都适合作为练手项目使用 (新手入门必备) 。

该框架采用了模块化设计,封装了常用的功能,使得使用起来非常简单。它旨在帮助你进行快速的业务研发,并同时增加了一些限制,以约束项目组开发成员的行为,避免混乱无序和自由随意的编码风格。

通过使用这个框架,你可以快速搭建一个具备良好结构和规范的 API 项目,从而提高开发效率和代码质量。无论你是新手还是有经验的开发者,都可以借助这个框架来构建可靠、可扩展的 Go 项目。

该框架托管在 GitHub 上,仓库地址为 https://github.com/xinliangnote/go-gin-api 目前,该项目已经获得了 5.1k 的 star。

为什么会产生 gin-api-mono ?

因为有些开发者提出了这样的需求:“亮哥,你的 go-gin-api 项目我看了,非常适合我,可以出一个简版的吗?不需要界面,去掉集成的一些功能,我只需要 API 接口,然后在提供下 CURD 编写示例,我拿来从零开始直接应用到项目中写业务代码...”

针对这个需求,gin-api-mono 应运而生。它是一个简单、轻量级的框架,集成了常用的组件可供使用,同时也提供了 CURD 操作示例,方便开发者快速上手。与 go-gin-api 不同的是,首先 gin-api-mono 去掉了一些集成的功能和界面,使得整个框架更加简洁、轻量化。其次 gin-api-mono 对代码进行了升级,以确保其在性能和稳定性方面的优势。

总之,gin-api-mono 是一个简洁、轻量级的 API 框架,旨在提供更便捷的业务开发体验,开发者可以更灵活地选择所需的功能,并获得更好的性能和稳定性。

gin-api-mono 集成了哪些功能?

快速入门

  1. 运行使用
  2. 配置路由
  3. 处理请求参数
  4. 操作数据库
  5. 编译成二进制文件

进阶

  1. 自定义编写中间件及使用
  2. 统一定义错误码并进行语言汉化
  3. 接口返回值规范的最佳实践方法
  4. 开发环境下实现代码的热更新部署
  5. 集成 aes 对称加密算法
  6. 集成 rsa 非对称加密算法
  7. 集成 snowflake 实现生成唯一 ID
  8. 集成 cors 实现允许前端跨域请求
  9. 集成 swag 实现自动生成接口文档
  10. 集成 pprof 实现应用程序性能分析
  11. 集成 jwt 实现身份认证及验证中间件
  12. 集成 prometheus 客户端实现注册和暴露指标
  13. 自定义调试方法,支持将调试日志收集到上下文日志中
  14. 集成 gorm 操作 MySQL 数据,支持将操作日志收集到上下文日志中
  15. 集成 redis/v8 操作 Redis 数据,支持将操作日志收集到上下文日志中
  16. 集成 resty/v2 请求 HTTP 接口,支持将请求/响应日志收集到上下文日志中
  17. 集成 mongo-driver 操作 MongoDB 数据,支持将操作日志收集到上下文日志中
  18. 强大的日志收集功能,根据「请求唯一ID」可串联请求日志、响应日志、调试日志、MySQL 操作日志、Redis 操作日志、Mongo 操作日志、三方 HTTP 请求响应日志等

你会收获什么?

一、学会后,你将达到了 Go 的中级水平

经过充分的学习和实践,你将能够灵活运用所学知识,并将其应用于实际项目中,从而达到 Go 的中级水平。在这个过程中,你将会学习到框架的核心设计思路和封装思想,并获得宝贵的学习经验。

二、过程中,可以找到志同道合的伙伴

我主打作为一个陪伴大家答疑解惑的存在,你将成为交流圈子的重要一员。你的知识和经验将为其他人提供宝贵的帮助和指导。无论是提出问题、回答问题、提供建议还是分享资源,你的存在将为这个圈子注入更多的活力和温暖。


标签:集成,框架,api,mono,API,Go,gin,日志,轻量级
From: https://blog.51cto.com/u_15183360/9133830

相关文章

  • 通往人工智能的 Go 之路
    Agency该库旨在为那些希望通过清晰、高效且符合Go语言惯例的方法来探索大型语言模型(LLMs)和其他生成式人工智能的开发人员而设计。特点纯Go语言:快速、轻量级,静态类型,无需涉及Python或JavaScript编写清晰的代码并遵循清晰的架构,将业务逻辑与具体实现分离通过实现简单接口轻松......
  • Go 语言为什么不支持并发读写 map?
    大家好,我是frank,「Golang语言开发栈」公众号作者。01介绍在Go语言项目开发中,我们经常会使用哈希表map,它的时间复杂度是O(1),Go语言中的map使用开放寻址法避免哈希碰撞。Go语言中的map并非原子操作,不支持并发读写操作。Go官方认为map在大多数情况下是使用map进行并......
  • dbeaver 链接 mongodb
    如何使用DBeaver连接MongoDB作为一名经验丰富的开发者,我将教你如何使用DBeaver连接MongoDB数据库。以下是整个过程的步骤:步骤操作1安装DBeaver2安装MongoDBJDBC驱动程序3配置数据库连接下面是每个步骤需要做的事情以及相应的代码:步骤1:安装DB......
  • js和python的接口api怎么开发
    在JavaScript(JS)和Python之间开发接口(API)时,可以使用多种方法,具体取决于你的需求和偏好。以下是一些常见的方法:RESTfulAPI:RESTful(RepresentationalStateTransfer)是一种设计风格,通过HTTP协议进行通信。你可以使用Node.js(JavaScript)和Flask/Django(Python)等框架来实现RESTfulAPI。在......
  • Django quertset、set的序列化
    一、几种序列化importjson#序列化querysetdefxuliehuaQueryset(request):querylist=models.LsTable.objects.all()querylist_json=serializers.serialize("json",querylist)returnHttpResponse(querylist_json)#序列化setdefxuliehuaQueryset(......
  • 2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧 在
    2024-01-06:用go语言,在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧在桥上有一些石子,青蛙很讨厌踩在这些石子上由于桥的长度和青蛙一次跳过的距离都是正整数我们可以把独木桥上青蛙可能到达的点看成数轴上的一串整点:0...L其中L是桥的长度,坐标为0的点表示桥的起点,坐......
  • 用 Go 编写日志中间件的指南
    这是关于如何为GoWeb服务编写可扩展日志记录中间件的指南。我收到了很多请求,要求向gorilla/mux添加内置记录器并扩展gorilla/handlers记录的内容,但它们很难分类。许多要求都是针对不同的事情,因为记录“什么”、记录多少以及使用哪个库并不是所有人都同意的。此外,特别是在mux的情......
  • MongoDB中的聚合函数
    当然可以!以下是MongoDB中聚合函数的使用方法和一些具体示例,带有注释解释:$match:用途:筛选符合条件的文档。示例:筛选出age大于20的文档。db.collection.aggregate([{$match:{age:{$gt:20}}}])$group:用途:对文档进行分组,并计算每组的聚合......
  • Django中的URL模式
    Django中的URL模式是一种用于处理HTTP请求和将请求映射到相应的视图函数的技术。URL模式是Django路由系统的基础,它负责接收客户端发送的请求,并将其映射到相应的视图函数进行处理。URL模式的核心功能是URL匹配和视图函数的调用。URL模式底层逻辑主要包括以下几个方面:URL模式类:Django......
  • 【flink番外篇】9、Flink Table API 支持的操作示例(2)- 通过Table API 和 SQL 创建视图
    Flink系列文章一、Flink专栏Flink专栏系统介绍某一知识点,并辅以具体的示例进行说明。1、Flink部署系列本部分介绍Flink的部署、配置相关基础内容。2、Flink基础系列本部分介绍Flink的基础部分,比如术语、架构、编程模型、编程指南、基本的datastreamapi用法、四大基......