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 相关文章推荐
pydev使用wxpython找不到路径的解决方法
Feb 10 Python
Python中的rjust()方法使用详解
May 19 Python
Python获取系统默认字符编码的方法
Jun 04 Python
Python应用03 使用PyQT制作视频播放器实例
Dec 07 Python
简单谈谈Python的pycurl模块
Apr 07 Python
python学习基础之循环import及import过程
Apr 22 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
在python中使用requests 模拟浏览器发送请求数据的方法
Dec 26 Python
linux环境中没有网络怎么下载python
Jul 07 Python
opencv 图像轮廓的实现示例
Jul 08 Python
pycharm激活方法到2099年(激活流程)
Sep 22 Python
python pip如何手动安装二进制包
Sep 30 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
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
php下连接mssql2005的代码
2011/01/17 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
php_screw 1.5:php加密: 安装与使用详解
2013/06/20 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
php输出xml属性的方法
2015/03/19 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
PHP用PDO如何封装简单易用的DB类详解
2017/07/30 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
JavaScript包装对象使用介绍
2013/08/29 Javascript
javascript实现原生ajax的几种方法介绍
2013/09/21 Javascript
jquery+ajax+C#实现无刷新操作数据库数据的简单实例
2014/02/08 Javascript
JQuery在循环中绑定事件的问题详解
2016/06/02 Javascript
深入理解Nodejs Global 模块
2017/06/03 NodeJs
Js 利用正则表达式和replace函数获取string中所有被匹配到的文本(推荐)
2018/10/28 Javascript
jQuery实现的五星点评功能【案例】
2019/02/18 jQuery
微信小程序 如何获取网络状态
2019/07/26 Javascript
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vue实现多页签组件
2021/01/14 Vue.js
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
对Django url的几种使用方式详解
2019/08/06 Python
python求绝对值的三种方法小结
2019/12/04 Python
python中count函数知识点浅析
2020/12/17 Python
与世界上最好的跑步专业品牌合作:Fleet Feet
2019/03/22 全球购物
意大利中国电子产品购物网站:Geekmall.com
2019/09/30 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
JMS中Topic和Queue有什么区别
2013/05/15 面试题
中软国际Java程序员机试题
2012/08/19 面试题
房地产开发计划书
2014/01/10 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
2015年学校总务工作总结
2015/07/20 职场文书
劳保用品管理制度范本
2015/08/06 职场文书
2016年4月份红领巾广播稿
2015/12/21 职场文书
vite+vue3.0+ts+element-plus快速搭建项目的实现
2021/06/24 Vue.js
python高温预警数据获取实例
2022/07/23 Python