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 help()函数用法详解
Mar 11 Python
用Python实现通过哈希算法检测图片重复的教程
Apr 02 Python
Python编程中的for循环语句学习教程
Oct 14 Python
Python实现的rsa加密算法详解
Jan 24 Python
特征脸(Eigenface)理论基础之PCA主成分分析法
Mar 13 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
Jun 28 Python
详解【python】str与json类型转换
Apr 29 Python
pyqt5 实现工具栏文字图片同时显示
Jun 13 Python
numpy创建单位矩阵和对角矩阵的实例
Nov 29 Python
Python实现钉钉订阅消息功能
Jan 14 Python
python小白切忌乱用表达式
May 29 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中的数组操作函数整理
2008/08/18 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
jquery中动态效果小结
2010/12/16 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
jQuery实现提示密码强度的代码
2015/07/15 Javascript
js文本框走动跑马灯效果代码分享
2015/08/25 Javascript
Javascript类型系统之undefined和null浅析
2016/07/13 Javascript
新入门node.js必须要知道的概念(必看篇)
2016/08/10 Javascript
Javascript的动态增加类的实现方法
2016/10/20 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
使用watch监听路由变化和watch监听对象的实例
2018/02/24 Javascript
js实现简单进度条效果
2020/03/25 Javascript
python字符串中的单双引
2017/02/16 Python
Django的models中on_delete参数详解
2019/07/16 Python
python psutil监控进程实例
2019/12/17 Python
python logging 日志的级别调整方式
2020/02/21 Python
Python selenium爬取微博数据代码实例
2020/05/22 Python
浅析Python模块之间的相互引用问题
2021/02/26 Python
a标签下载链接的简单实现
2016/09/13 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
三分钟演讲稿事例
2014/03/03 职场文书
公司请假条格式
2014/04/11 职场文书
外语系毕业生求职自荐信
2014/04/12 职场文书
学习之星事迹材料
2014/05/17 职场文书
酒店开业策划方案
2014/06/02 职场文书
2015年春节标语口号
2014/12/09 职场文书
干部年终考核评语
2015/01/04 职场文书
管理人员岗位职责
2015/02/14 职场文书
酒店采购员岗位职责
2015/04/03 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
纯html+css实现Element loading效果
2021/08/02 HTML / CSS