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字符串特性及常用字符串方法的简单笔记
Jan 04 Python
视觉直观感受若干常用排序算法
Apr 13 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
Python微信公众号开发平台
Jan 25 Python
tensorflow实现KNN识别MNIST
Mar 12 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
实例讲解python中的协程
Oct 08 Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 Python
python字符串,元组,列表,字典互转代码实例详解
Feb 14 Python
python3 配置logging日志类的操作
Apr 08 Python
Python基础 括号()[]{}的详解
Nov 07 Python
如何使用python包中的sched事件调度器
Apr 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
基于xcache的配置与使用详解
2013/06/18 PHP
Php header()函数语法及使用代码
2013/11/04 PHP
linux下实现定时执行php脚本
2015/02/13 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
Yii中的relations数据关联查询及统计功能用法详解
2016/07/14 PHP
ThinkPHP框架实现的邮箱激活功能示例
2018/06/15 PHP
JS 进度条效果实现代码整理
2011/05/21 Javascript
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
js 点击页面其他地方关闭弹出层(示例代码)
2013/12/24 Javascript
JavaScript中的逻辑判断符&&、||与!介绍
2014/12/31 Javascript
nodejs中使用多线程编程的方法实例
2015/03/24 NodeJs
JQuery包裹DOM节点的方法
2015/06/11 Javascript
jQuery ui实现动感的圆角渐变网站导航菜单效果代码
2015/08/26 Javascript
JavaScript字符串对象
2017/01/14 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
浅谈Express异步进化史
2017/09/09 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
在 Angular中 使用 Lodash 的方法
2018/02/11 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
python基于queue和threading实现多线程下载实例
2014/10/08 Python
win系统下为Python3.5安装flask-mongoengine 库
2016/12/20 Python
Python简单实现查找一个字符串中最长不重复子串的方法
2018/03/26 Python
浅谈Django的缓存机制
2018/08/23 Python
pycharm设置默认的UTF-8编码模式的方法详解
2020/06/01 Python
python中return如何写
2020/06/18 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
《猴子种树》教学反思
2014/02/14 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
计划生育工作汇报
2014/10/28 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
同学联谊会邀请函
2019/06/24 职场文书
教你部署vue项目到docker
2022/04/05 Vue.js