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 相关文章推荐
Web服务器框架 Tornado简介
Jul 16 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
Python简单获取网卡名称及其IP地址的方法【基于psutil模块】
May 24 Python
python操作excel的方法(xlsxwriter包的使用)
Jun 11 Python
解决Python pandas df 写入excel 出现的问题
Jul 04 Python
python与C、C++混编的四种方式(小结)
Jul 15 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
python通过对字典的排序,对json字段进行排序的实例
Feb 27 Python
Python IDLE或shell中切换路径的操作
Mar 09 Python
python 实现单例模式的5种方法
Sep 23 Python
python playwright 自动等待和断言详解
Nov 27 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/09/25 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
使用php完成常见的文件上传功能(推荐)
2017/01/13 PHP
CCPry JS类库 代码
2009/10/30 Javascript
Jquery实战_读书笔记1—选择jQuery
2010/01/22 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
纯JAVASCRIPT图表动画插件Highcharts Examples
2011/04/16 Javascript
JavaScript设计模式之单例模式实例
2014/09/24 Javascript
jQuery平滑旋转幻灯片特效代码分享
2015/09/07 Javascript
微信小程序组件之srcoll-view的详解
2017/10/19 Javascript
React Native 使用Fetch发送网络请求的示例代码
2017/12/02 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
vuex实现及简略解析(小结)
2019/03/01 Javascript
浅谈对于react-thunk中间件的简单理解
2019/05/01 Javascript
JS实现数组删除指定元素功能示例
2019/06/05 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
[02:11]2016国际邀请赛中国区预选赛全程回顾
2016/07/01 DOTA
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
python通过线程实现定时器timer的方法
2015/03/16 Python
基于Python 装饰器装饰类中的方法实例
2018/04/21 Python
Python装饰器基础概念与用法详解
2018/12/22 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
文明礼仪事迹材料
2014/01/09 职场文书
中学教师管理制度
2014/01/14 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
2015年简历自我评价范文
2015/03/11 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
Redis基于Bitmap实现用户签到功能
2021/06/20 Redis
mysql如何配置白名单访问
2021/06/30 MySQL
MySQL图形化管理工具Navicat安装步骤
2021/12/04 MySQL