当前位置: 首页 > wzjs >正文

嘉兴网站建设需要多少钱关键词优化报价怎么样

嘉兴网站建设需要多少钱,关键词优化报价怎么样,物联网应用技术就业方向,阿里云wordpress镜像文章目录 安装使用RESTful API响应页面获取请求参数路由讲解中间件 安装使用 Gin 是一个 golang 的微框架,封装比较优雅,API 友好,源代码比较明确。具有快速灵活,容错方便等特点。其实对于 golang 而言,web 框架的依赖…

文章目录

    • 安装使用
    • RESTful API
    • 响应页面
    • 获取请求参数
    • 路由讲解
    • 中间件

安装使用

  • Gin 是一个 golang 的微框架,封装比较优雅,API 友好,源代码比较明确。具有快速灵活,容错方便等特点。其实对于 golang 而言,web 框架的依赖远比 python,java 之类的要小。自身的 net/http 足够简单,性能也非常不错。框架更像是一个常用函数或者工具的集合。借助框架开发,不仅可以省去很多常用的封装带来的时间,也有助于团队的编码风格和形成规范。
  • Gin 官方文档地址:https://gin-gonic.com/zh-cn.docs
  • 安装 Gin:
go get -u github.com/gin-gonic/gin
  • 在 windows 10 系统中,安装 Go1.19 之后的版本,然后打开 go module,在命令行终端中输入:go env -w GO111MODULE=on
  • 修改指定的代理,在命令行终端中输入:go env -w GOPROXY=https:/lgoproxy.io,direct
package mainimport "github.com/gin-gonic/gin"
import "github.com/thinkerou/favicon"func main() {// 创建一个服务ginServer := gin.Default()// 为网页标签导入一个iconginServer.Use(favicon.New("path/to/your/icon"))// 连接数据库的代码// 访问地址,处理请求 Request ResponseginServer.GET("/hello", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "Hello World!"})})// gin.H 其实就是一个 map[string]any// 服务器端口ginServer.Run(":8082")
}

RESTful API

  • RESTful API(Representational State Transfer API)是一种基于REST架构风格的网络应用编程接口,它通过HTTP协议进行通信,常用于Web服务的实现。RESTful API遵循一些基本的设计原则,使得服务更加灵活、简单和易于维护。
  • REST的核心思想是通过定义资源(Resource)并通过HTTP动词(GET、POST、PUT、DELETE等)对资源进行操作。
// 以前写网站
get /user
post /create_user
post /update_user
post /delete_user// RESTful API
get /user
post /user
put /user
delete /user
  • GET:获取资源,不修改服务器上的数据。
  • POST:创建新的资源,通常用于提交数据。
  • PUT:更新资源,用于替代现有资源。
  • DELETE:删除资源。
  • PATCH:部分更新资源。
	// 访问地址,处理请求 Request Response// Gin RestFul 十分简单ginServer.GET("/hello", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "Hello World!"})})ginServer.POST("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "Post user"})})ginServer.PUT("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "Put user"})})ginServer.DELETE("/user", func(context *gin.Context) {context.JSON(200, gin.H{"msg": "Delete user"})})

响应页面

	// 加载静态页面(全局加载)ginServer.loadHTMLGlob("templates/*")// 加载资源文件gin.Server.Static("./static","./static")// 响应一个页面给前端ginServer.GET("/index", func(context *gin.Context) {// context.JSON()  json数据context.HTML(http.StatusOK, "index.html", gin.H{"msg":"This is the data form server."})//  前端用 {{.msg}} 赋值表达式即可取出})

获取请求参数

  • url?userid=1&username=z3,url传参方式
	ginServer.GET("/user/info", func(context *gin.Context) {userid := context.Query("userid")username := context.Query("username")context.JSON(http.StatusOK, gin.H {"userid":userid,"username":username,})})
  • url/user/info/1/z3,RestFul风格请求参数
	// :就可以直接取出这个值了ginServer.GET("/user/info/:userid/:username", func(context *gin.Context) {userid := context.Param("userid")username := context.Param("username")context.JSON(http.StatusOK, gin.H {"userid":userid,"username":username,})})
	// 前端给后端传递 jsonginServer.GET("/json", func(context *gin.Context) {// request.bodyb, _ := context.GetRawData()var m map[string]interface{}// 返回的是byte切片,包装为json数据_ = json.Unmarshal(b, &m)context.JSON(http.StatusOK, m)})// 处理表单ginServer.GET("/user/add", func(context *gin.Context) {username := context.PostForm("username")password := context.PostForm("password")// 校验逻辑,略context.JSON(http.StatusOK, gin.H {"msg":"ok","username":username,"password":password,})})

路由讲解

	ginServer.GET("/json", func(context *gin.Context) {// 重定向context.Redirect(http.StatusMovedPermanently, "https://www.4399.com")})
	// 404 NoRouteginServer.NoRoute(func(context *gin.Context) {context.Redirect(http.StatusNotFound, "404.html", nil)})
	// 路由组userGroup := ginServer.Group("/user"){userGroup.POST("/add", func)userGroup.POST("/login", func)userGroup.POST("/logout", func)}orderGroup := ginServer.Group("/order"){orderGroup.POST("/add", func)orderGroup.DELETE("/delete", func)}

中间件

	// go中间件可以进行预处理,登录授权、验证、分页等// 自定义go中间件 拦截器func myHandler() (gin.HandlerFunc) {return func(context *gin.Context) {// 通过自定义的中间件,设置的值在后续处理只要调用了这个中间件都可以拿到这里的值context.Set("usersession", "userid-1")if condition {context.Next() // 放行} else {context.Abort() // 阻止}}}ginServer.GET("/user/info", myHandler(), func(context *gin.Context) {// 取出中间件中的值usersession := context.MustGet("userSession").(string)log.Println("userSession", usersession)userid := context.Query("userid")username := context.Query("username")context.JSON(http.StatusOK, gin.H {"userid":userid,"username":username,})})
http://www.dtcms.com/wzjs/471620.html

相关文章:

  • 怎么做属于自己的售卡网站深圳网站建设
  • 查询域名注册网站推广软件的渠道有哪些
  • 网站黄页推广软件百度医生在线问诊
  • 贵州城乡住房建设网站相城seo网站优化软件
  • 如何上传自己的视频做网站谷歌浏览器下载手机版安卓
  • 网站建设技术支持2345网址导航应用
  • 山东省通信管理局 对于经营性网站的认定软件定制开发
  • 做一个网站最低多少钱seo关键词推广渠道
  • 做聚会的网站快速建站哪个平台好
  • 电视家日本付费分享码鹤壁seo推广
  • 麻花星空影视传媒制作公司seo网络推广知识
  • 怎么在网站上做反邪教知识搭建一个app平台要多少钱
  • 企业形象设计logo招聘seo专员
  • 深圳比较大的做网站设计公司有域名有服务器怎么做网站
  • 龙岗企业网站制作公司资源
  • 重庆网站建设平台免费青岛网络科技公司排名
  • 如何用两台电脑做服务器建网站百度认证营销顾问
  • Vs做的网站调试时如何适应网页google推广平台怎么做
  • 摄影师网站html5微信小程序开发平台
  • 东营做网站哪家好百度代理加盟
  • 网站开发要花多少钱西安新站网站推广优化
  • 高端网站推荐项目推广方案
  • 做守望先锋h的网站网站管理工具
  • 有做火币网这种网站的吗怎样才能上百度
  • 燕窝网站怎么做的seo资料站
  • 网站搭建排名优化2024政治时政热点
  • 做网站毕业论文佛山快速排名
  • 做网站哪便宜我想学做互联网怎么入手
  • 做网站公司在哪怎样在百度上注册自己的店铺
  • 制作外贸网站开发企业网站建设需求分析