第一个 GoWeb 程序,三款主流框架 Beego、Gin 和 Iris 快速入门

news2024/11/16 15:37:37

1、什么是web应用

Web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件。

一个Web应用程序是由完成特定任务的各种Web组件构成的并通过Web将服务展示给外界。在实际应用中,Web应用程序是由多个Servlet、JSP页面、HTML文件以及图像文件等组成。所有这些组件相互协调为用户提供一组完整的服务。

Web应用程序简单流程如下图所示

在这里插入图片描述

2、Go 的 Web 框架

Go 三款主流框架,Beego、Gin 和 Iris,如何选择自我评价(没有最好的只有最合适的),这里给大家整理一下学习文档

Beego 中文新版文档网站

Gin 框架中文文档

Iris 框架中文文档

想深入学习的可以参考:Go 三款主流框架–Gin Beego Iris 选型对比

4、准备工作

4.1、安装 Go

首先需要先安装 Go 语言及环境变量配置,如果有可以跳过

MAC 系统安装 Go 语言及环境变量配置

4.2、创建一个 Go 项目

如果不会创建可以参考文章 《第一个 Go 程序,从 Hello World 开始 》,我这里创建了一个项目 go-http 如下图

在这里插入图片描述

4、三款主流框架

4.1、Beego 快速入门

4.1.1、安装 Beego 软件包

在 VS Code 终端输入以下命令并执行

# 下载并安装 beego
go get -u github.com/beego/beego/v2@latest

4.1.2、编写代码

首先创建一个名为 beego.go 的文件,再将如下的代码写入 beego.go 文件中

package main

import (
	"github.com/beego/beego/v2/server/web"
	"github.com/beego/beego/v2/server/web/context"
)

func main() {
	// 注册函数式风格路由注册
	web.Get("/beego", func(ctx *context.Context) {
		ctx.WriteString("Hello beego")
	})

	// 监听并启动 8080 端口
	web.Run()
}

4.1.3、运行代码

在 VS Code 终端输入以下命令运行代码

# 运行 beego 文件
go run beego.go

4.1.4、测试效果

在浏览器或 Postman 输入地址:http://localhost:8080/beego

在这里插入图片描述

4.2、Gin 快速入门

4.2.1、安装 Gin 软件包

在 VS Code 终端输入以下命令并执行

# 下载并安装 gin
go get -u github.com/gin-gonic/gin

4.2.2、编写代码

首先创建一个名为 gin.go 的文件,再将如下的代码写入 gin.go 文件中

package main

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

func main() {
	// 创建一个默认配置 Gin
	app := gin.Default()

	// 创建一个 Get 请求
	app.GET("/gin", func(c *gin.Context) {
		c.JSON(200, gin.H{
			"message": "hello gin",
		})
	})

	// 监听并启动 8080 端口
	app.Run()
}

4.2.3、运行代码

在 VS Code 终端输入以下命令运行代码

# 运行 gin 文件
go run gin.go

4.2.4、测试效果

在浏览器或 Postman 输入地址:http://localhost:8080/gin

在这里插入图片描述

4.3、Iris 快速入门

4.3.1、安装 Iris 软件包

在 VS Code 终端输入以下命令并执行

# 下载并安装 Iris
go get -u github.com/kataras/iris/v12@master

4.3.2、编写代码

首先创建一个名为 iris.go 的文件,再将如下的代码写入 iris.go 文件中

package main

import "github.com/kataras/iris/v12"

func main() {
	// 创建一个默认配置 Iris
	app := iris.New()

	// 创建一个 Get 请求
	app.Get("/iris", func(ctx iris.Context) {
		ctx.JSON(iris.Map{"message": "Hello Iris"})
	})

	// 监听并启动 8080 端口
	app.Run(iris.Addr(":8080"))
}

4.3.3、运行代码

在 VS Code 终端输入以下命令运行代码

# 运行 iris 文件
go run iris.go

4.3.4、测试效果

在浏览器或 Postman 输入地址:http://localhost:8080/iris

在这里插入图片描述

5、每日一记

go mod tidy 的使用
1、引用项目需要的依赖增加到 go.mod 文件。
2、去掉 go.mod 文件中项目不需要的依赖。

# 更新 go.mod 文件依赖信息
go mod tidy

实践是检验真理的唯一标准,一键送三连关注不迷路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22918.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网络是怎样连接的--生成HTTP请求消息过程

文章目录1.1 何为网址1.2 解析网址1.3 HTTP在干嘛1.4 生成http请求和响应1.1 何为网址 网址,准确来说应该叫URL,比如以http://开头的那一串东西.但实际上除了“http:”,网址还可以以其他一些文字开头,例如“ftp:”“file:”“mailto:”等。而…

免费申请Jetbrains全家桶

文章目录Jetbrains全家桶免费申请的人群学生和老师申请的要求申请方式申请流程解决收不到邮件的问题编辑内容进行认证申请成功Jetbrains全家桶 Jetbrains是著名的编程工具商业软件提供商,旗下有很多软件。包括IDE、团队开发工具、插件和微软.Net辅助工具、包括自创语…

[附源码]java毕业设计小型银行贷款管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

C\C++刷题DAY4

目录 1.第一题 2.第二题 3.第三题 4.第四题 5.第五题 1.第一题 206. 反转链表 - 力扣(LeetCode) 思路:调转指向关系,使用双指针的思想 1指向2,改成2指向1,以此类推。 参考代码: struct L…

2022年NPDP新版教材知识集锦--【第三章节】(5)

【系统工程】 系统工程的概念 系统工程原理将系统思维和系统工程过程模型的概念结合起来,通过设计、项目管理工具和方法的系统和集成过程将问题转化为解决方案。 所有系统都由具有属性或功能的部分组成,元素之间通过关系相互联系。 系统复杂性由结构…

想学爬虫爬取网页,但是不知道流程?

爬取网页总体概述: 1.使用urllib请求网页,获取网页源码。 2.使用bs4配合re正则表达式进行页面数据解析,获取到自己想要的数据。 3.使用pymysql保存到数据库或xlwt保存成excel文件。 温馨提示:学习之前需要先了解py基础知识&#x…

PTA题目 计算符号函数的值

对于任一整数n,符号函数sign(n)的定义如下: 请编写程序计算该函数对任一输入整数的值。 输入格式: 输入在一行中给出整数n。 输出格式: 在一行中按照格式“sign(n) 函数值”输出该整数n对应的函数值。 输入样例1: 10输出样例1: sign(10) 1输入样…

住宅代理详细介绍——助您快速入门!

Oxylabs的高级代理池能够为客户提供来自世界各地的1亿多个住宅代理,并且其规模还在不断壮大中,即使是难搞的网络抓取任务也能够处理。住宅代理能轻松从复杂的目标中收集数据,帮助您在无需面对CAPTCHA验证或封锁的情况下实现抓取。 想要全方位…

在 Kubernetes 上最小化安装 KubeSphere

文章目录什么是 KubeSphere搭建环境准备工作部署 KubeSphere卸载 KubeSphere常见问题什么是 KubeSphere KubeSphere 是在 Kubernetes 之上构建的面向云原生应用的分布式操作系统,完全开源,支持多云与多集群管理,提供全栈的 IT 自动化运维能力…

免费公众号题库

免费公众号题库 本平台优点: 多题库查题、独立后台、响应速度快、全网平台可查、功能最全! 1.想要给自己的公众号获得查题接口,只需要两步! 2.题库: 查题校园题库:查题校园题库后台(点击跳转…

java之《图书管理系统》庖丁解牛

🎇🎇🎇作者: 小鱼不会骑车 🎆🎆🎆专栏: 《java练级之旅》 🎓🎓🎓个人简介: 一名专科大一在读的小比特,努力学习编程是我…

大数据挖掘建模平台是怎样的?

大数据挖掘建模平台是可视化、一站式、高性能的数据挖掘与人工智能建模服务平台。面向企业级用户的大数据挖掘建模平台。平台采用可视化操作方式,通过丰富内置算法,帮助用户快速、一站式地进行数据分析及挖掘建模,可应用于处理海量数据、高复…

初识VisionPro应用开发

文章目录一、引言二、VisionPro应用开发指南1. 上手指南1.1. VisionPro开发概述1.2. 高级开发功能2. 选择应用开发路径(方式)2.1. 路径1:用QuickBuild和应用程序向导生成的操作接口进行交互式开发2.2. 路径2:用QuickBuild和自定义…

MySQL 经典面试题分析(值得收藏)

MySQL是程序员面试必问题目点之一,因为 MySQL 几乎占据了数据库的半壁江山。数据库的核心与原理基本是相通的,所以有了 MySQL 的基础之后,再去熟悉其他数据库也是非常快的,那么让我们一起来了解一下MySQL 。 MySQL 有很多存储引擎…

铁矿行业BI经营分析框架(二)万能框架-增长性、盈利性、流动性

有关铁矿行业的一些基础业务知识,铁矿行业的竞争本质上就是规模和成本的竞争。从业务角度探、采、选、冶这四块最重要的就是选矿这个过程。因为国内铁矿品位比较低,大部分都是30%左右的贫矿,所以选矿的成本就比较高。 要优化现金成本&#xf…

为什么推荐 Java 开发人员都学习并使用 Kotlin?

我使用 Java 已经有很长的时间了,工作中的使用有15年。如果算上在学校的时间的话,那就更长了。Java 的一个很大的优势是平台的开放性。这得益于 Java 字节代码和虚拟机的存在。由于 Java 语言自身的发展速度比较慢,就催生了很多运行在 JVM 上…

西班牙知名导演:电影产业应与NFT及社区做结合

潜力博主推荐,点击上面关注博主 ↑ ↑ “OGtown”是华语cryptopunks社区授权的文章专栏 NFT项目走向全球社区。 通证一哥:2016年起专注区块链行业相关的研究。中国大陆第一本NFT畅销书作者。加密朋克中文社区的联合发起人。token punk社区发起人 88pu…

【Linux】---环境变量

文章目录环境变量环境变量测试和环境变量相关的命令echoenvexportunsetset环境变量的组织方式main函数的几个参数第三个参数环境变量的全局性环境变量 环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,例如: 平常我们去执行一个程序一…

Multiscale Vision Transformers 论文详解

Abstract 我们提出了 Multiscale Vision Transformers(MViT)用于视频和图像识别。MViT 是多尺度特征层次结构和Transformer的结合。MViT 有几个通道分辨率尺度块(channel-resoluation scale stages)。从输入分辨率和小通道维度开始…

JavaScript学习——什么是编程语言?计算机基础

每篇博文的浪漫主义 【Study Vlog #21 | 计划被打断之后的报复性学习 | 喜欢秋天安静的学习时刻】 https://www.bilibili.com/video/BV1b84y1B79c/?share_sourcecopy_web&vd_source385ba0043075be7c24c4aeb4aaa73352 Study Vlog #21 | 计划被打断之后的报复性学习 | 喜欢…