Golang Web 框架Iris安装部署


Posted in Python onAugust 14, 2022

引言

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的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python利用hook技术破解https的实例代码
Mar 25 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
在Mac OS上搭建Python的开发环境
Dec 24 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
python3爬取淘宝信息代码分析
Feb 10 Python
python批量替换多文件字符串问题详解
Apr 22 Python
设置python3为默认python的方法
Oct 31 Python
Python中join()函数多种操作代码实例
Jan 13 Python
Tensorflow的梯度异步更新示例
Jan 23 Python
python中threading开启关闭线程操作
May 02 Python
python同时遍历两个list用法说明
May 02 Python
pytorch 如何把图像数据集进行划分成train,test和val
May 31 Python
python manim实现排序算法动画示例
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 #Python
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
Aug 14 #Python
基于Python实现nc批量转tif格式
Aug 14 #Python
LyScript实现绕过反调试保护的示例详解
Aug 14 #Python
LeetCode189轮转数组python示例
Aug 05 #Python
python语言中pandas字符串分割str.split()函数
Aug 05 #Python
You might like
PHP CLI模式下的多进程应用分析
2013/06/03 PHP
PHP实现过滤各种HTML标签
2015/05/17 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
PHP 布尔值的自增与自减的实现方法
2018/05/03 PHP
php中的钩子理解及应用实例分析
2019/08/30 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
jQuery+canvas实现的球体平抛及颜色动态变换效果
2016/01/28 Javascript
提高JavaScript执行效率的23个实用技巧
2017/03/01 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
angular 用拦截器统一处理http请求和响应的方法
2017/06/08 Javascript
微信小程序云开发之使用云存储
2019/05/17 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
javascript 关于赋值、浅拷贝、深拷贝的个人理解
2019/11/01 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
Python正则表达式介绍
2012/08/06 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
放弃 Python 转向 Go语言有人给出了 9 大理由
2017/10/20 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
解决python Markdown模块乱码的问题
2019/02/14 Python
在python里面运用多继承方法详解
2019/07/01 Python
Django项目之Elasticsearch搜索引擎的实例
2019/08/21 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
YSL圣罗兰美妆美国官网:Yves Saint Lauret US
2016/11/21 全球购物
校三好学生主要事迹
2014/01/11 职场文书
房地产财务管理制度
2014/02/02 职场文书
化妆品促销方案
2014/02/24 职场文书
党的群众路线教育实践活动个人批评与自我批评
2014/10/16 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书
2015军训通讯稿大全
2015/07/18 职场文书
升学宴家长答谢词
2015/09/29 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python