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 相关文章推荐
python3简单实现微信爬虫
Apr 09 Python
python创建和删除目录的方法
Apr 29 Python
python pycurl验证basic和digest认证的方法
May 02 Python
pip命令无法使用的解决方法
Jun 12 Python
深入分析python中整型不会溢出问题
Jun 18 Python
python顺序的读取文件夹下名称有序的文件方法
Jul 11 Python
详解Python Qt的窗体开发的基本操作
Jul 14 Python
Python列表的切片实例讲解
Aug 20 Python
Python with语句和过程抽取思想
Dec 23 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python request 模块详细介绍
Nov 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
php cout<<的一点看法
2010/01/24 PHP
php数字游戏 计算24算法
2012/06/10 PHP
PHP jQuery表单,带验证具体实现方法
2014/02/15 PHP
如何阻止网站被恶意反向代理访问(防网站镜像)
2014/03/18 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
用javascript实现的支持lrc歌词的播放器
2007/05/17 Javascript
javascript 类定义的4种方法
2009/09/12 Javascript
js post方式传递提交的实现代码
2010/05/31 Javascript
javascript题目,重写函数让其无限相加
2012/02/15 Javascript
jquery右下角弹出提示框示例代码
2013/10/08 Javascript
如何在MVC应用程序中使用Jquery
2014/11/17 Javascript
JQuery datepicker 用法详解
2015/12/25 Javascript
yarn与npm的命令行小结
2016/10/20 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
2016/12/21 Javascript
JavaScript获取键盘按键的键码(参照表)
2017/01/10 Javascript
Bootstrap栅格系统简单实现代码
2017/03/06 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
python实现文件快照加密保护的方法
2015/06/30 Python
Python字符串匹配算法KMP实例
2015/07/18 Python
Python 循环语句之 while,for语句详解
2018/04/23 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
整理HTML5中表单的常用属性及新属性
2016/02/19 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
行政经理的岗位职责
2013/11/23 职场文书
自荐信范文
2013/12/10 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
大学入学感言
2015/08/01 职场文书
PYTHON使用Matplotlib去实现各种条形图的绘制
2022/03/22 Python