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控制台显示时钟的示例
Feb 24 Python
实践Python的爬虫框架Scrapy来抓取豆瓣电影TOP250
Jan 20 Python
Python数据类型详解(四)字典:dict
May 12 Python
Windows 7下Python Web环境搭建图文教程
Mar 20 Python
python实战教程之自动扫雷
Jul 13 Python
python获取中文字符串长度的方法
Nov 14 Python
python判断计算机是否有网络连接的实例
Dec 15 Python
不到40行代码用Python实现一个简单的推荐系统
May 10 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
Aug 30 Python
Python numpy线性代数用法实例解析
Nov 15 Python
python列表推导和生成器表达式知识点总结
Jan 10 Python
Python实现一个优先级队列的方法
Jul 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合并数组array_merge函数运算符加号与的区别
2008/10/31 PHP
php单例模式实现方法分析
2015/03/14 PHP
Zend Framework教程之Loader以及PluginLoader用法详解
2016/03/09 PHP
Laravel使用原生sql语句并调用的方法
2019/10/09 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
Javascript JSQL,SQL无处不在,
2010/05/05 Javascript
JS获取url链接字符串 location.href
2013/12/23 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
JavaScript访问字符串中单个字符的两种方法
2015/07/03 Javascript
Js获取当前日期时间及格式化代码
2016/09/17 Javascript
jQuery实现手机版页面翻页效果的简单实例
2016/10/05 Javascript
vue自定义指令实现v-tap插件
2016/11/03 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
js Canvas绘制圆形时钟效果
2017/02/17 Javascript
微信小程序页面开发注意事项整理
2017/05/18 Javascript
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
vue-cli3.0 环境变量与模式配置方法
2018/11/08 Javascript
ES6的异步终极解决方案分享
2019/07/11 Javascript
bootstrap-treeview实现多级树形菜单 后台JSON格式如何组织?
2019/07/26 Javascript
JS对日期操作封装代码实例
2019/11/08 Javascript
webpack+express实现文件精确缓存的示例代码
2020/06/11 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
python实现微信自动回复及批量添加好友功能
2019/07/03 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
多视角3D逼真HTML5水波动画
2016/03/03 HTML / CSS
商务英语专业应届毕业生求职信
2013/10/28 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
中专生自我鉴定范文
2014/02/02 职场文书
我们的节日清明节活动方案
2014/03/05 职场文书
清明节网上祭英烈活动总结
2014/04/30 职场文书
大学三年计划书范文
2014/04/30 职场文书
golang 实现菜单树的生成方式
2021/04/28 Golang