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编写一个国际象棋AI程序
Nov 28 Python
详解django三种文件下载方式
Apr 06 Python
python调用opencv实现猫脸检测功能
Jan 15 Python
python 实现返回一个列表中出现次数最多的元素方法
Jun 11 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
用Python批量把文件复制到另一个文件夹的实现方法
Aug 16 Python
Python Lambda函数使用总结详解
Dec 11 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
Elasticsearch py客户端库安装及使用方法解析
Sep 14 Python
python破解同事的压缩包密码
Oct 14 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
Django框架模板用法详解
Jun 10 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
德生PL330测评
2021/03/02 无线电
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Yii Framework框架使用PHPExcel组件的方法示例
2019/07/24 PHP
javascript实现禁止鼠标滚轮事件
2015/07/24 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
jquery ezUI 双击行记录弹窗查看明细的实现方法
2016/06/01 Javascript
AngularJS 依赖注入详解及示例代码
2016/08/17 Javascript
JavaScript中利用for循环遍历数组
2017/01/15 Javascript
基于JS实现二维码图片固定在右下角某处并跟随滚动条滚动
2017/02/08 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
轻松搞定jQuery+JSONP跨域请求的解决方案
2018/03/06 jQuery
微信小程序methods中定义的方法互相调用的实例代码
2018/08/07 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
vue init webpack 建vue项目报错的解决方法
2018/09/29 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
Python实现设置windows桌面壁纸代码分享
2015/03/28 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
Flask之flask-script模块使用
2018/07/26 Python
python json.loads兼容单引号数据的方法
2018/12/19 Python
python多线程并发让两个LED同时亮的方法
2019/02/18 Python
Python Tkinter模块 GUI 可视化实例
2019/11/20 Python
简单了解Python读取大文件代码实例
2019/12/18 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
纯CSS3实现移动端展开和收起效果的示例代码
2020/04/26 HTML / CSS
最新党员思想汇报
2014/01/01 职场文书
运动会通讯稿100字
2014/01/31 职场文书
给市场的环保建议书
2014/05/14 职场文书
写给老师的保证书
2015/05/09 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
Nginx配置并兼容HTTP实现代码解析
2021/03/31 Servers