Gin之gin快速开始

1、gin快速开始

1.1 新建一个项目

[root@zsx src]# mkdir ginquickstart
[root@zsx src]# cd ginquickstart/
[root@zsx ginquickstart]# go mod init ginquickstart
go: creating new go.mod: module ginquickstart

1.2 复制启动文件模板到项目目录中

[root@zsx ginquickstart]# curl https://raw.githubusercontent.com/gin-gonic/examples/master/basic/main.go > main.go

1.3 下载相关依赖包

[root@zsx ginquickstart]# go mod tidy

1.4 修改启动端口

// 根据实际情况修改启动端口,这里修改为8085
// 修改main.go
func main() {r := setupRouter()// Listen and Server in 0.0.0.0:8080r.Run(":8085")
}

1.5 启动项目

[root@zsx ginquickstart]# go run main.go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.- using env:   export GIN_MODE=release- using code:  gin.SetMode(gin.ReleaseMode)[GIN-debug] GET    /ping                     --> main.setupRouter.func1 (3 handlers)
[GIN-debug] GET    /user/:name               --> main.setupRouter.func2 (3 handlers)
[GIN-debug] POST   /admin                    --> main.setupRouter.func3 (4 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8085

1.6 访问项目

[root@zsx ~]# curl http://localhost:8085/ping
pong
[root@zsx ~]# curl http://localhost:8085/user/tom
{"status":"no value","user":"tom"}
[root@zsx ~]# curl -X POST http://localhost:8085/admin -H 'authorization: Basic Zm9vOmJhcg==' -H 'content-type: application/json' -d '{"value":"bar"}'
{"status":"ok"}

1.7 自定义请求

停掉 main.go,编写一个文件 example.go

package main
import "github.com/gin-gonic/gin"
func main() {r := gin.Default()r.GET("/ping", func(c *gin.Context) {c.JSON(200, gin.H{"message": "pong",})})r.Run(":8085") // 监听并在 0.0.0.0:8085 上启动服务
}

重新启动项目:

[root@zsx ginquickstart]# go run example.go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.- using env:   export GIN_MODE=release- using code:  gin.SetMode(gin.ReleaseMode)[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8085

访问:

[root@zsx ~]# curl http://localhost:8085/ping
{"message":"pong"}

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

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

相关文章

网络安全笔记

一、简介 网络安全是指通过管理和技术手段保护网络系统免受未经授权的访问、数据泄露、破坏或摧毁。随着互联网的普及,网络安全问题日益突出,对个人和企业信息安全构成了严重威胁。因此,了解和掌握网络安全知识对于保护个人信息和企业数据至…

如何使用C++ max函数

在C中&#xff0c;你可以使用std::max()函数来获取两个值中的较大值。这个函数位于<algorithm>头文件中。 下面是使用std::max()函数的示例代码&#xff1a; #include <iostream> #include <algorithm>int main() {int a 10;int b 20;int max_value std…

关联系统-智能座舱控制器ICC

智能座舱构成 如上图所示&#xff0c;智能座舱主要是由仪表、中控、HUD、语音、DMS/OMS等多种交互通道组成&#xff0c;其宗旨是提升人的交互体验&#xff0c;使车辆更加智能化&#xff0c;情感化。 智能座舱内部功能 仪表功能 SR场景重构 如上图所示&#xff0c;仪表区域可实…

Redis相关面试题大全

&#x1f4d5;作者简介&#xff1a; 过去日记&#xff0c;致力于Java、GoLang,Rust等多种编程语言&#xff0c;热爱技术&#xff0c;喜欢游戏的博主。 &#x1f4d7;本文收录于java面试题系列&#xff0c;大家有兴趣的可以看一看 &#x1f4d8;相关专栏Rust初阶教程、go语言基…

为啥现在4位单片机依然没有被淘汰?

为啥现在4位单片机依然没有被淘汰&#xff1f; 在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「单片机的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大家&#xff01;&#xf…

详解gorm中DB对象的clone属性

详解gorm中DB对象的clone属性 Gorm 版本&#xff1a;v1.22.4 Where函数源码 // Where add conditions func (db *DB) Where(query interface{}, args ...interface{}) (tx *DB) {tx db.getInstance()if conds : tx.Statement.BuildCondition(query, args...); len(conds) &…

网络安全概述

目录 网络安全背景 网络安全常识及术语 网络的脆弱性和常见安全攻击 网络环境的开放性 协议栈(TCP/IP)自身的脆弱性 物理层 -- 物理攻击 链路层 网络层 -- ICMP攻击 传输层 -- TCP SYN Flood攻击 应用层 -- DNS欺骗攻击 ​编辑 操作系统的脆弱性及常见安全攻…

DevEco Studio4.0/3.1预览器报错综合整理

题外话&#xff1a;额&#xff0c;这篇文章的由来&#xff0c;是在这篇文章DevEco Studio3.1报错...发布后&#xff0c;仍有人没解决预览不了的问题&#xff0c;然后就有小伙伴让我看看到底哪个地方出错了&#xff0c;为什么按照文章上的去做了&#xff0c;还是无法使用&#x…

JVM知识点总结

<<Java虚拟机规范>> 堆&#xff1a; Java堆可以处于物理上不连续的内存空间中&#xff0c;但在逻辑上应该被视为连续的。 所有对象实例及数组都应该堆上分配。注意:虽然规范是这样的&#xff0c;由于及时编技术的进步&#xff0c;尤其 逃逸分析技术的日渐强大&…

HCIP----MGRE实验

实验要求&#xff1a; 第一步&#xff0c;基本的IP地址配置 R1&#xff1a; [R1]int g0/0/1 [R1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 #配置PC的网关 [R1]int Serial 4/0/0 [R1-Serial4/0/0]link-protocol hdlc #R1和R2之间采用hdlc封装 [R1-S…

如何使用WebDAV云同步

如何使用WebDAV云同步 文章目录 如何使用WebDAV云同步1.WebDAV是什么&#xff1f;1.1 发现WebDAV的背景1.2 WebDAV是什么&#xff1f; 2.使用WebDAV国内推荐坚果云 1.WebDAV是什么&#xff1f; 1.1 发现WebDAV的背景 不久前我写过如何搭建chatGPT的web页面的博客&#xff0c;…

爬虫入门到精通_基础篇1(爬虫基本原理讲解, Urllib库基本使用)

01 爬虫基本原理讲解 1.什么是爬虫:请求网站并提取数据的自动化程序 2.爬虫基本流程&#xff1a; 发起请求&#xff1a;通过HTTP库向目标站点发起请求&#xff0c;即发送一个Request,请求可以包含额外的headers等信息&#xff0c;等待服务器响应。获取响应内容&#xff1a;如…

从0开始学鸿蒙应用开发——安装与配置DevEco Studio

安装与配置DevEco Studio 一.电脑配置要求 64位win10及以上&#xff0c;内存8GB&#xff0c;硬盘100GB 二.下载 1.进入openharmony官网&#xff1a;OpenAtom OpenHarmonyhttps://www.openharmony.cn/mainPlay 2.点击下载。 3.依次选择 开发者->应用开发者->应用开发文…

探索哥德巴赫猜想:数学的未解之谜

目录 质数的定义哥德巴赫猜想的数学表述Python代码验证哥德巴赫猜想结论 哥德巴赫猜想是数学界的一个著名问题&#xff0c;由俄国数学家哥德巴赫&#xff08;Christian Goldbach&#xff09;在1742年提出。他在与欧拉的通信中提到了这一猜想&#xff0c;它可以分为两个部分&…

从零学Java - Stream API

Java - Stream API 文章目录 Java - Stream API什么是流(Stream)?Stream 的特点Stream使用步骤1 创建 Stream流2 中间操作3 终止操作 什么是流(Stream)? 流&#xff08;Stream&#xff09;与集合类似&#xff0c;但集合中保存的是数据&#xff0c;而Stream中保存对集合或数组…

揭开Spring MVC的真面目

官方对于Spring MVC的描述为&#xff1a; Spring Web MVC是基于Servlet API框架构建的原始Web框架&#xff0c;从一开始就包含在Spring框架中。它的正式名称“Spring Web MVC”来自其源模块的名称&#xff08;Spring-webmvc&#xff09;&#xff0c;但它通常被称为“Spring-MVC…

数组和链表部分例题(力扣)

1.数组 1.1 合并一个数组的两个有序区间 public class MargTwo {public static void main(String[] args) {int[] arr1{1,5,6,2,4,10,11};int[] arr2new int[arr1.length];marg2(arr1,0,2,3,6,arr2);}private static void marg2(int[]arr1,int iStar,int iEnd,int jStar,int j…

服务器大量time_wait影响性能,如何解决

调整内核参数&#xff1a;可以通过修改操作系统的内核参数来调整 TIME_WAIT 状态的处理。例如&#xff0c;可以调整 net.ipv4.tcp_tw_reuse 参数为 1&#xff0c;表示允许将 TIME_WAIT 状态的连接用于新的连接。这样可以减少 TIME_WAIT 状态连接占用的资源。 调整连接超时时间…

Flutter 状态管理之GetX库

Flutter 状态管理之GetX 前言正文一、创建项目二、状态组件三、状态更新UI四、GetX库① 添加依赖② 局部刷新③ 全局刷新 五、源码 前言 Flutter使用的是声明式UI&#xff0c;是通过状态去更新UI组件的&#xff0c;因此我们首先就要学习状态的使用。同样为了简化原本的状态使用…

剖析组件应用市场的安装

java运维管理平台怎么支持组件的安装呢&#xff1f;怎么能够达到和应用市场一样的效果呢&#xff1f;效果图如下&#xff1a; 应用商店支持的组件列表&#xff1a; 应用商店组件的安装&#xff1a; 1.组件包的制作 1.1 组件包结构 package&#xff1a;用于存放实际组件包…