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 bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
简单介绍Python下自己编写web框架的一些要点
Apr 29 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Python使用cx_Oracle模块操作Oracle数据库详解
May 07 Python
Jupyter notebook远程访问服务器的方法
May 24 Python
python实现大学人员管理系统
Oct 25 Python
pygame实现打字游戏
Feb 19 Python
Python 解析库json及jsonpath pickle的实现
Aug 17 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
python 实现一个简单的线性回归案例
Dec 17 Python
Python 将代码转换为可执行文件脱离python环境运行(步骤详解)
Jan 25 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中stream(流)的用法
2014/03/25 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
php实现window平台的checkdnsrr函数
2015/05/27 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
2018/09/16 PHP
Laravel框架中缓存的使用方法分析
2019/09/06 PHP
JavaScript Konami Code 实现代码
2009/07/29 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
Jquery 获取对象的几种方式介绍
2014/01/17 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
asp知识整理笔记3(问答模式)
2015/09/27 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
基于Three.js插件制作360度全景图
2016/11/29 Javascript
详解js的事件处理函数和动态创建html标记方法
2016/12/16 Javascript
javaScript实现滚动条事件详解
2020/03/24 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
python django事务transaction源码分析详解
2017/03/17 Python
安装docker-compose的两种最简方法
2019/07/30 Python
深入浅析python的第三方库pandas
2020/02/13 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
Python爬虫requests库多种用法实例
2020/05/28 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
XML文档面试题
2015/08/05 面试题
医学专业毕业生个人的求职信
2013/12/04 职场文书
参观监狱心得体会
2014/01/02 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
成本会计实训报告
2014/11/05 职场文书
2014年计划生育协会工作总结
2014/11/14 职场文书
民主生活会汇报材料
2014/12/15 职场文书
无犯罪记录证明样本
2015/06/16 职场文书
亲戚关系证明
2015/06/24 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android