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测试驱动开发实例
Oct 08 Python
零基础写python爬虫之爬虫的定义及URL构成
Nov 04 Python
python3实现ftp服务功能(服务端 For Linux)
Mar 24 Python
Python3使用SMTP发送带附件邮件
Jun 16 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
Flask框架学习笔记之表单基础介绍与表单提交方式
Aug 12 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
使用python实现CGI环境搭建过程解析
Apr 28 Python
Python基于traceback模块获取异常信息
Jul 23 Python
Python如何给函数库增加日志功能
Aug 04 Python
python利用线程实现多任务
Sep 18 Python
Opencv python 图片生成视频的方法示例
Nov 18 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/07/29 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
用js自动判断浏览器分辨率的代码
2007/01/28 Javascript
jQuery html() in Firefox (uses .innerHTML) ignores DOM changes
2010/03/05 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
JavaScript字符串对象substr方法入门实例(用于截取字符串)
2014/10/16 Javascript
javascript实现很浪漫的气泡冒出特效
2020/09/05 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
基于vue中解决v-for使用报红并出现警告的问题
2018/03/03 Javascript
vue component 中引入less文件报错 Module build failed
2019/04/17 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
2019/06/17 Javascript
微信小程序如何实现在线客服功能
2019/10/16 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
vue路由权限校验功能的实现代码
2020/06/07 Javascript
[01:49]一目了然!DOTA2DotA快捷操作对比第二弹
2014/05/16 DOTA
python求pi的方法
2014/10/08 Python
Appium+python自动化怎么查看程序所占端口号和IP
2019/06/14 Python
对于Python深浅拷贝的理解
2019/07/29 Python
python NumPy ndarray二维数组 按照行列求平均实例
2019/11/26 Python
python 实现目录复制的三种小结
2019/12/04 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
解决Jupyter NoteBook输出的图表太小看不清问题
2020/04/16 Python
TensorFlow使用Graph的基本操作的实现
2020/04/22 Python
canvas实现漂亮的下雨效果的示例
2018/04/18 HTML / CSS
美国网上书店:Barnes & Noble
2018/08/15 全球购物
您在慕尼黑的跑步商店:Lauf-bar
2019/10/11 全球购物
计算机科学系职业生涯规划书
2014/03/08 职场文书
毕业生就业协议书
2014/04/11 职场文书
个人欠条范本
2015/07/03 职场文书
青年教师听课心得体会
2016/01/15 职场文书
纯CSS3实现div按照顺序出入效果
2021/07/15 HTML / CSS
Windows7下FTP搭建图文教程
2022/08/05 Servers
苹果macOS 13开发者预览版Beta 8发布 正式版10月发布
2022/09/23 数码科技