首页 > 其他分享 >可能是GitHub star星最多的Golang Web框架-Gin初识

可能是GitHub star星最多的Golang Web框架-Gin初识

时间:2025-01-04 12:56:13浏览次数:1  
标签:Web GitHub star -- Go Gin go gin

对比

目前主流Golang Web框架对比

名称 描述 star数量
Gin Gin 是用 Go (Golang) 编写的 HTTP Web 框架。它具有类似 Martini 的 API,性能要好得多 - 速度提高了 40 倍。 79.6k
Fiber 用 Go 编写的受 Express 启发的 Web 框架 34.4k
Beego beego 是一个用于 Go 编程语言的开源、高性能 Web 框架。 31.7k
Echo 高性能、极简的 Go Web 框架 30.2k

Gin特点

  • 零分配路由器
  • 速度
  • 中间件支持
  • 自由崩溃(Crash-free,不知道这么翻译对不?)
  • JSON 验证
  • 路由分组
  • 错误管理
  • 内置渲染
  • 支持扩展

Gin小试

Gin 需要 Go版本1.21 或更高版本。

go mode初始化

mkdir gin-test;cd gin-test
go mod init gin-test

代码部分

新建一个main.go文件,写入以下代码:

package main

import (
  "net/http"

  "github.com/gin-gonic/gin"
)

func main() {
  r := gin.Default()
  r.GET("/ping", func(c *gin.Context) {
    c.JSON(http.StatusOK, gin.H{
      "message": "pong",
    })
  })
  r.Run()
}

上面代码中gin.Default()创建了一个Gin引擎实例,引擎实例只处理一个URL为/ping的GET请求,匿名函数会返回json字符串{"message":"pong"},最后r.Run()启动运行Gin引擎实例,默认启动8080端口。

依赖管理

执行依赖整理,增加或清理依赖

go mod tidy

运行代码

go run main.go

访问http://127.0.0.1:8080/ping,返回{"message":"pong"}表明已正常运行。

推荐的项目目录结构

.
|--assets
|--cmd
|--configs
|--deployments
|--docs
|--internal
|   |--api
|   |--model
|   |--pkg
|   |--router
|   |--service
|   |--utils
|--logs
|--pkg
|--scripts
|--test
|--website

参考https://github.com/golang-standards/project-layout

目前我自己新写项目的话后端更倾向使用Gin框架,占有内存少,性能还不错。

标签:Web,GitHub,star,--,Go,Gin,go,gin
From: https://www.cnblogs.com/robindevnotes/p/18651764

相关文章

  • Gin+GORM+Zap+PostgreSQL的Web后端-Gin进阶
    上一篇文章介绍了Gin和Gin的简单使用,本次介绍Gin进阶使用,并和一些常用的库组合使用,最后测试运行并写入数据到PostgreSQL数据库。可配置在configs目录下,新增了config.yml作为配置文件,使用viper库读取配置文件参数,来设置Gin框架和一些其他参数。funcInitConfig(){ viper.AddCo......
  • Jmeter 进行websocket接口测试
    什么是websocket协议?Websocket是基于tcp的一种全双通信协议,客户端与服务器之间通过websocket建立连接后,客户端和服务器之间会长时间保持连接状态(即长连接)。客户端可以向服务器发送数据,服务器也可以主动向客户端推送数据。与http协议不同的是http是tcp的单向通信协议,只有客户端向......
  • [Web Fronted] 前端框架: React
    序部分开源项目是基于Web前端框架React构建的,有必要了解一二。避免一脸懵逼,不知道怎么修改相关代码和配置概述:ReactReact的简介React起源于Facebook的内部项目因为该公司对市场上所有JavaScriptMVC框架都不满意,就决定自己写一套,用来架设Instagram的......
  • javaweb仓库仓储系统出入库模块设计
    目录项目介绍具体实现截图开发核心技术:写作提纲开发过程思路核心代码部分展示实验方案:详细视频演示源码获取方式项目介绍本系统主要包括管理员和员工;主要包括:主页、个人中心、员工管理、客户信息管理、供应商管理、仓库信息管理、货物类型管理、货物信息管理、货物......
  • SD WebUI必备插件安装,菜鸟轻松成高手!
    一个刚学AI绘画的小菜鸟怎么快速成为StableDiffusionde的高手?答案就是SD插件,只要学会使用SD的各种插件,帮你写正向和负向提示词,修复人脸/身体/手指,高清放大图片,指定人物pose,图片微调等等都可以轻松搞定,善用插件是成为高手必经之路。目录1插件安装方法2基础插件介绍3......
  • vite和webpack有什么区别?
    Vite和Webpack都是现代前端开发中的常见打包工具,它们之间存在一些显著的区别。以下是对这些区别的详细分析:开发环境的响应速度:Vite采用了基于ESModule的开发服务器,只有在需要时才会编译对应的模块,这种方式大幅度提升了开发环境的响应速度。相比之下,Webpack在开发模式下依然......
  • HTML Select Drop Down List Data Source From Web API
    前端,html还是mvc页面,我们想实现一个下拉选单,写<select>指定id或者name,稍后在js代码能获取到它。 #7~#9行,没有参数条件可传,保留为空。#19WebAPI地址。#21为异步方法,看下,#37,是为了不让代码写在一块,Insus.NET已经重构成另一个function,也是本示例中重点核心代码,下面继续看看,......
  • Web安全基础:反序列化漏洞详解(含PHP,Python示例)
    当系统接收和处理外部输入的数据时,可能会通过反序列化过程执行恶意代码或操作。这个漏洞的根本原因在于,系统对反序列化数据的处理不够严格,导致攻击者能够将精心构造的数据注入到反序列化流程中,进而达到远程代码执行、数据篡改、权限提升等目的。序列化与反序列化序列化:将......
  • 发布blazor应用到Linux, 使用nginx作为WebSocket代理
    Blazor使用了SignalR连接,而SignalR使用的是WebSocketWebSocket协议提供了一种创建支持客户端和服务器之间实时双向通信的Web应用程序的方法。作为HTML5的一部分,WebSocket使开发此类应用程序比以前的方法容易得多。大多数现代浏览器都支持WebSocket,包括Chrome、Firefox......
  • GitHub 中疑似有 450 万个假星
    《4.5Million(Suspected)FakeStarsinGitHub:AGrowingSpiralofPopularityContests,Scams,andMalware》一、研究概述这篇论文主要关注的是GitHub平台上存在的疑似虚假“星标(star)”现象。GitHub作为全球最大的代码托管平台,“星标”是衡量项目受欢迎程度和质量的......