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删除文件示例分享
Jan 28 Python
python求众数问题实例
Sep 26 Python
详解Python中DOM方法的动态性
Apr 11 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
实例探究Python以并发方式编写高性能端口扫描器的方法
Jun 14 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
Python在cmd上打印彩色文字实现过程详解
Aug 07 Python
python Web flask 视图内容和模板实现代码
Aug 23 Python
Pycharm小白级简单使用教程
Jan 08 Python
python dict乱码如何解决
Jun 07 Python
使用python操作lmdb对数据读取的实例
Dec 11 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官方微信接口大全(微信支付、微信红包、微信摇一摇、微信小店)
2015/12/21 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
Yii的Srbac插件用法详解
2016/07/14 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
PNG背景在不同浏览器下的应用
2009/06/22 Javascript
js判断浏览器是否支持html5
2014/08/17 Javascript
javascript学习笔记(二)数组和对象部分
2014/09/30 Javascript
node.js集成百度UE编辑器
2015/02/05 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
node.js中 stream使用教程
2016/08/28 Javascript
浅谈JavaScript的闭包函数
2016/12/08 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
AngularJS实时获取并显示密码的方法
2018/02/06 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
vue开发中遇到的问题总结
2020/04/07 Javascript
vue项目开启Gzip压缩和性能优化操作
2020/10/26 Javascript
Python验证码识别处理实例
2015/12/28 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
快速解决PyCharm无法引用matplotlib的问题
2018/05/24 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
PyQt5实现简易电子词典
2019/06/25 Python
pytorch 利用lstm做mnist手写数字识别分类的实例
2020/01/10 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
如何写python的配置文件
2020/06/07 Python
canvas三角函数模拟水波效果的示例代码
2018/07/03 HTML / CSS
美国波道夫·古德曼百货官网:Bergdorf Goodman
2017/11/07 全球购物
Veronica Beard官网:在酷、经典和别致之间找到了平衡
2018/01/11 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
结婚纪念日感言
2015/08/01 职场文书
MySql分区类型及创建分区的方法
2022/04/13 MySQL