首页 > 其他分享 >go web 框架

go web 框架

时间:2023-03-30 20:11:45浏览次数:43  
标签:web 框架 WEB blog 站点 gin go Gin

 

 

在 Go语言开发的 Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多。

Gin 是 Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 json。总之在 Go语言开发领域是一款值得好好研究的 Web 框架,开源网址:https://github.com/gin-gonic/gin

首先下载安装 gin 包:

go get -u github.com/gin-gonic/gin

一个简单的例子:

  1. package main
  2. import "github.com/gin-gonic/gin"
  3. func main() {
  4. //Default返回一个默认的路由引擎
  5. r := gin.Default()
  6. r.GET("/ping", func(c *gin.Context) {
  7. //输出json结果给调用方
  8. c.JSON(200, gin.H{
  9. "message": "pong",
  10. })
  11. })
  12. r.Run() // listen and serve on 0.0.0.0:8080
  13. }

编译运行程序,打开浏览器,访问http://localhost:8080/ping页面显示:

{"message":"pong"}

gin 的功能不只是简单输出 Json 数据。它是一个轻量级的 WEB 框架,支持 RestFull 风格 API,支持 GET,POST,PUT,PATCH,DELETE,OPTIONS 等 http 方法,支持文件上传,分组路由,Multipart/Urlencoded FORM,以及支持 JsonP,参数处理等等功能,这些都和 WEB 紧密相关,通过提供这些功能,使开发人员更方便地处理 WEB 业务。

Gin 实际应用

接下来使用 Gin 作为框架来搭建一个拥有静态资源站点,动态 WEB 站点,以及 RESTFull API 接口站点(可专门作为手机 APP 应用提供服务使用)组成的,亦可根据情况分拆这套系统,每种功能独立出来单独提供服务。

下面按照一套系统但采用分站点来说明,首先是整个系统的目录结构,website 目录下面 static 是资源类文件,为静态资源站点专用;photo 目录是 UGC 上传图片目录,tpl 是动态站点的模板。

当然这个目录结构是一种约定,可以根据情况来修改。整个项目已经开源,可以访问来详细了解:https://github.com/ffhelicopter/tmm具体每个站点的功能怎么实现呢?请看下面有关每个功能的讲述:

静态资源站点

一般网站开发中,我们会考虑把 js,css,以及资源图片放在一起,作为静态站点部署在 CDN,提升响应速度。采用 Gin 实现起来非常简单,当然也可以使用 net/http 包轻松实现,但使用 Gin 会更方便。

不管怎么样,使用 Go 开发,我们可以不用花太多时间在 WEB 服务环境搭建上,程序启动就直接可以提供 WEB 服务了。

 

 

MiniCDN - 一个 Golang 实现的 CDN:

https://toutiao.io/posts/viim6/preview

 

 

参考:

http://c.biancheng.net/view/5574.html

http://www.openskill.cn/article/613

https://blog.csdn.net/weixin_34244102/article/details/91474542?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-91474542-blog-125615420.235%5Ev27%5Epc_relevant_multi_platform_whitelistv3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-91474542-blog-125615420.235%5Ev27%5Epc_relevant_multi_platform_whitelistv3&utm_relevant_index=2

标签:web,框架,WEB,blog,站点,gin,go,Gin
From: https://www.cnblogs.com/rebrobot/p/17274159.html

相关文章

  • WebRTC通信时获取速率(每秒帧数)相关信息
    在用WebRTC进行通信时,可以通过RTCPeerConnection对象的getStats方法获取相关的连接统计信息,以此获取每秒帧数。--ByBriskyu1 getStats的使用方法constpc=newRTCPeerConnection()//获取视频流对象varselector=pc.getRemoteStreams()[0].getAudioTracks()[0]//......
  • 03-网络安全-web渗透环境搭建(基础篇)
    01--所需系统环境:虚拟主机系统部署(vmware,虚拟主机创建、虚拟主机网络配置(桥接,便于网络中多个主机都能访问虚拟主机)、虚拟软件功能,快照、克隆、镜像文件加载,ova文件制作)(模拟被攻击者、攻击者、通讯方)windows2003/2008windows 7/10linux系统  kail/contos02--网站服务架......
  • 软件测试|web自动化测试神器playwright教程(八)
    前言selenium中提供了一个seleniumIDE的工具用于脚本录制,我们通过插件市场安装之后,便可以将我们对浏览器页面的操作录制成脚本,并输出成java或Python等语言的脚本,我们可以通过生成的脚本再次回放我们的操作。作为一个比selenium更加强大的web自动化测试工具,当然也拥有录制的功能了,......
  • Web 自动化测试工具 All In One
    Web自动化测试工具AllInOneseleniumappiumfiddlerjmeter...SeleniumSeleniumWebDriver如果你想创建健壮的、基于浏览器的回归自动化套件和测试,在许多环境中扩展和分发脚本,那么你想使用SeleniumWebDriver,一个驱动浏览器的语言特定绑定的集合——它本来的方式驱动。......
  • WebUploader大文件上传解决方案支持分片断点上传
    ​ 前言文件上传是一个老生常谈的话题了,在文件相对比较小的情况下,可以直接把文件转化为字节流上传到服务器,但在文件比较大的情况下,用普通的方式进行上传,这可不是一个好的办法,毕竟很少有人会忍受,当文件上传到一半中断后,继续上传却只能重头开始上传,这种让人不爽的体验。那有没有......
  • 混合式开发UI自动化 之原生和webview 切换
    正常进入小程序登录页面,操作写入用户名、密码,程序报错需切换页面至webview中,主要涉及context  driver.contexts输出打印 NATIVE_APP代表原生WEBVIEW代表小程序页面driver.switch_to.context(contexts[2])数字看需填写切换后即可进行元素操作 ......
  • Beego查数据库数据panic问题
    一开始没发现问题所在,请了位大佬帮忙排查错误逐步确定问题所在。问题起源于我查数据库没有得到正确的数据开始。一开始发现是数据类型问题,改过之后还是存在问题,于是debug一下,一步一步看问题出在哪里,结果走进了锁,就没仔细看,哪知在这中间出现了一个panic问题。但是这个panic没有打......
  • 谷歌网站收录查询,如何让Google快速收录外链
    谷歌搜索引擎在全球范围内占据主导地位,许多网站都希望被谷歌快速收录以提高知名度和访问量。外链对于网站的权重和排名具有重要影响,因此让Google快速收录外链同样关键。本文将为您介绍如何查询谷歌网站收录情况,以及如何让Google快速收录外链。一、谷歌网站收录查询要查询您的网站在......
  • 【入门】Go语言Map集合详解
    目录一、Map集合介绍1.1什么是Map集合?1.2Map集合语法二、Map基本操作2.1定义Map2.2获取Map2.3修改Map元素2.4删除Map元素2.5遍历Map三、案例3.1案例一3.2案例二一、Map集合介绍1.1什么是Map集合?map集合是一种无序的键值对的集合map是通过key来快速检索数据,key类似......
  • webpack的基本使用(八)CleanWebpackPlugin
    为了打包之前把dist底下的文件先删除了先,然后再进行打包,我们使用clean-webpack-plugin安装  配置 将构造函数放入webpackPlugin中进行  ......