Golang Web 框架Iris安装部署

 更新时间:2022年08月12日 16:33:31   作者:GetcharZp  
这篇文章主要为大家介绍了Golang Web 框架Iris安装部署,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

Iris作为Golang中新兴的Web框架,比Gin晚了两年,于2016年开源,到目前为止已具备了较为完备的功能,参考Iris官方的数据可以发现,Iris不论在响应速度上还是吞吐量上都比同类型的Web框架高,通过本文可以了解如何在Web项目中使用Iris框架。

官方文档:www.iris-go.com/docs/#/?id=…

Iris 安装

和其他Web框架一样,通过 go module 来安装Iris

go get github.com/kataras/iris/v12@master

快速上手

通过简单的三步曲既可启动一个Iris服务:

获取Iris对象-->配置路由的处理逻辑-->启动监听服务,在main函数中启动后,访问127.0.0.1:8080可以获得返回的json数据 {"code":200,"msg":"success"}

app := iris.New()
// 指定根路径 / 的处理逻辑
app.Get("/", func(c iris.Context) {
   c.JSON(iris.Map{
      "code": 200,
      "msg":  "success",
   })
})
// 监听 8080 端口,并提供Web服务
app.Listen(":8080")

在Iris中使用RESTful风格的API

  • 查询数据

在路由地址中使用中括号{},括起来的部分可以通过c.Params().Get()的方式获取

// curl 127.0.0.1:8080/goods/123
app.Get("/goods/{id}", func(c iris.Context) {
   c.JSON(iris.Map{
      "id":  c.Params().Get("id"),
   })
})
  • 新增数据

使用PostValue接受表单传递过来的参数,同时Iris还提供了PostValueIntPostValueFloat32等方法,方便将前端传递过来的数据进行快速转化成相对应的类型,或者设置其该有的默认值等

// curl -X POST -d 'name=goods_name' 127.0.0.1:8080/goods
app.Post("/goods", func(c iris.Context) {
   c.JSON(iris.Map{
      "id":  c.PostValue("name"),
   })
})

使用ReadJson方法,将传递过来的数据Json格式化到指定的结构体中

定义一个用于接收数据的结构体

type Good struct {
   Name string
}

使用ReadJson方法将context中的数据渲染到good上

// curl -X POST -d '{"name":"goods_name"}' 127.0.0.1:8080/goods
good := new(Good)
app.Post("/goods", func(c iris.Context) {
   c.ReadJSON(good)
   c.JSON(iris.Map{
      "name":  good.Name,
   })
})
  • 修改数据

使用PUT方法封装路由,使用PostValue方法获取用户传递过来的数据,这里也可以结合上面所说的ReadJson方法,读取用户传递过来的数据

app.Put("/goods", func(c iris.Context) {
   c.JSON(iris.Map{
      "name":   c.PostValue("name"),
   })
})
  • 删除数据

删除数据这里不同的点是使用app.Delete方法,至于参数的传递与获取方面与上文的查询数据时所说的方法一致了

静态站点部署

通过HandleDir方法指定静态资源文件所处的目录即可,参考以下代码配置后,访问地址127.0.0.1:8080/static/xxx.png,就能获取到static目录下的xxx图片

app.HandleDir("/static", "/user/local/my-iris/static")

以上就是Golang Web 框架Iris安装部署的详细内容,更多关于Golang Web框架Iris的资料请关注脚本之家其它相关文章!

相关文章

  • Go使用TimerController解决timer过多的问题

    Go使用TimerController解决timer过多的问题

    多路复用,实际上Go底层也是一种多路复用的思想去实现的timer,但是它是底层的timer,我们需要解决的问题就过多的timer问题!本文给大家介绍了Go使用TimerController解决timer过多的问题,需要的朋友可以参考下
    2024-12-12
  • Go中Writer和Reader接口的使用入门

    Go中Writer和Reader接口的使用入门

    本文主要介绍了Go中Writer和Reader接口的使用入门,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Golang中的Slice与数组及区别详解

    Golang中的Slice与数组及区别详解

    数组是一种具有固定长度的基本数据结构,在golang中与C语言一样数组一旦创建了它的长度就不允许改变,数组的空余位置用0填补,不允许数组越界。今天小编通过实例代码操作给大家详细介绍lang中的Slice与数组的相关知识,一起看看吧
    2020-02-02
  • GO语言打包成.exe程序的方法

    GO语言打包成.exe程序的方法

    Go语言以其高效的编译能力和简洁的语法,能够轻松打包生成Windows系统下的.exe可执行文件,用户只需安装Go编译器、编写Go源代码并使用gobuild命令指定输出文件名即可完成编译,感兴趣的可以了解一下
    2024-10-10
  • Go 类型转化工具库cast函数详解

    Go 类型转化工具库cast函数详解

    这篇文章主要介绍了Go 类型转化工具库cast函数详解,cast 是在Github上开源的工具库,就像他的名字一样,他为我们提供了非常便捷的类型转化的方法
    2022-07-07
  • Go语言常用字符串处理方法实例汇总

    Go语言常用字符串处理方法实例汇总

    这篇文章主要介绍了Go语言常用字符串处理方法,实例汇总了Go语言中常见的各种字符串处理技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • Go语言中goroutine和WaitGroup的使用示例详解

    Go语言中goroutine和WaitGroup的使用示例详解

    goroutine 是Go中一个轻量级的线程, 只需要一个go关键字就可以创建一个goroutine,这篇文章主要介绍了Go语言中goroutine和WaitGroup的使用,需要的朋友可以参考下
    2023-03-03
  • golang HTTP 服务器 处理 日志/Stream流的操作

    golang HTTP 服务器 处理 日志/Stream流的操作

    这篇文章主要介绍了golang HTTP 服务器 处理 日志/Stream流的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • GoRoutines高性能同时进行多个Api调用实现

    GoRoutines高性能同时进行多个Api调用实现

    这篇文章主要为大家介绍了GoRoutines高性能同时进行多个Api调用实现示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Go语言中的格式化输出占位符的用法详解

    Go语言中的格式化输出占位符的用法详解

    在 Go 语言中,格式化输出是一个非常常用的功能,特别是在处理字符串、数字和其他数据类型时,本文将详细介绍 Go 语言中常用的格式化占位符及其用法,希望对大家有所帮助
    2024-10-10

最新评论