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中的字典详细介绍
Sep 18 Python
Python编写登陆接口的方法
Jul 10 Python
Python双精度浮点数运算并分行显示操作示例
Jul 21 Python
python版学生管理系统
Jan 10 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
python pandas读取csv后,获取列标签的方法
Nov 12 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
python 生成器和迭代器的原理解析
Oct 12 Python
Pandas 缺失数据处理的实现
Nov 04 Python
python中栈的原理及实现方法示例
Nov 27 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python 爬虫之selenium可视化爬虫的实现
Dec 04 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实现的登录页面信息提示功能示例
2017/07/24 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
JS 文字符串转换unicode编码函数
2009/05/30 Javascript
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
基于jQuery实现的当离开页面时出现提示的实现代码
2011/06/27 Javascript
屏蔽网页右键复制和ctrl+c复制的js代码
2013/01/04 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
js字符串与Unicode编码互相转换
2017/05/17 Javascript
vue-cli如何添加less 以及sass
2017/07/06 Javascript
解决node-sass偶尔安装失败的方法小结
2018/12/05 Javascript
浅谈vue限制文本框输入数字的正确姿势
2019/09/02 Javascript
vue中使用GraphQL的实例代码
2019/11/04 Javascript
JavaScript实现横版菜单栏
2020/03/17 Javascript
VUE异步更新DOM - 用$nextTick解决DOM视图的问题
2020/11/06 Javascript
[03:37]2016完美“圣”典 风云人物:Mikasa专访
2016/12/07 DOTA
[50:59]2018DOTA2亚洲邀请赛 4.7 总决赛 LGD vs Mineski第四场
2018/04/10 DOTA
Python实现股市信息下载的方法
2015/06/15 Python
Python连接mysql数据库的正确姿势
2016/02/03 Python
Linux 下 Python 实现按任意键退出的实现方法
2016/09/25 Python
详解Python实现进度条的4种方式
2020/01/15 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
25个CSS3动画按钮和菜单教程分享
2012/10/03 HTML / CSS
CSS3 linear-gradient线性渐变生成加号和减号的方法
2017/11/21 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
美国大型的健身社区和补充商店:Bodybuilding.com
2016/09/06 全球购物
MySQL面试题
2014/01/12 面试题
中学教师岗位职责
2013/11/26 职场文书
给儿子的表扬信
2014/01/15 职场文书
规范化管理年活动总结
2014/08/29 职场文书
企业党员个人自我评价
2014/09/20 职场文书
学校运动会报道稿
2014/09/23 职场文书
老兵退伍标语
2014/10/07 职场文书
学年个人总结范文
2015/03/05 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python