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的gevent框架的入门教程
Apr 29 Python
使用Python写个小监控
Jan 27 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
python虚拟环境的安装配置图文教程
Oct 20 Python
python中的turtle库函数简单使用教程
Jul 23 Python
pandas 将索引值相加的方法
Nov 15 Python
python使用paramiko模块通过ssh2协议对交换机进行配置的方法
Jul 25 Python
python文件处理fileinput使用方法详解
Jan 02 Python
python进行参数传递的方法
May 12 Python
为什么相对PHP黑python的更少
Jun 21 Python
Python实现http接口自动化测试的示例代码
Oct 09 Python
python实现会员管理系统
Mar 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 第二节 数据类型之数组
2012/04/28 PHP
Php无限级栏目分类读取的实现代码
2014/02/19 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
2014/12/17 PHP
php计算函数执行时间的方法
2015/03/20 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
PHP面向对象学习之parent::关键字
2017/01/18 PHP
PHP实现链式操作的三种方法详解
2017/11/16 PHP
解决laravel上传图片之后,目录有图片,但是访问不到(404)的问题
2019/10/14 PHP
19个很有用的 JavaScript库推荐
2011/06/27 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
微信小程序 wx.uploadFile无法上传解决办法
2016/12/14 Javascript
详解vue组件化开发-vuex状态管理库
2017/04/10 Javascript
详解Layer弹出层样式
2017/08/21 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
JS简单实现点击跳转登陆邮箱功能的方法
2017/10/31 Javascript
原生JS实现前端本地文件上传
2018/09/08 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[00:31]DOTA2荣耀之路7:Miracle-空血无敌斩
2018/05/31 DOTA
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
由面试题加深对Django的认识理解
2019/07/19 Python
python使用tomorrow实现多线程的例子
2019/07/20 Python
浅谈tensorflow 中tf.concat()的使用
2020/02/07 Python
python输出第n个默尼森数的实现示例
2020/03/08 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python如何操作mysql
2020/08/17 Python
python中time.ctime()实例用法
2021/02/03 Python
详解FireFox下Canvas使用图像合成绘制SVG的Bug
2019/07/10 HTML / CSS
Tory Burch德国官网:美国时尚生活品牌
2018/01/03 全球购物
搬家公司的创业计划书
2014/01/01 职场文书
市场营销战略计划书
2014/05/06 职场文书
入党综合考察材料
2014/06/02 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书