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的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
Python工程师面试必备25条知识点
Jan 17 Python
在PyCharm导航区中打开多个Project的关闭方法
Jan 17 Python
ubuntu 18.04搭建python环境(pycharm+anaconda)
Jun 14 Python
python Django中models进行模糊查询的示例
Jul 18 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
在Django中实现添加user到group并查看
Nov 18 Python
Python values()与itervalues()的用法详解
Nov 27 Python
pytorch 查看cuda 版本方式
Jun 23 Python
Python getsizeof()和getsize()区分详解
Nov 20 Python
python中time.ctime()实例用法
Feb 03 Python
Python可视化神器pyecharts之绘制箱形图
Jul 07 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
2012/09/19 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP实现的浏览器检查类
2016/04/11 PHP
PHP仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(上)
2017/05/26 PHP
php中html_entity_decode实现HTML实体转义
2018/06/13 PHP
php测试kafka项目示例
2020/02/06 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
jquery 页面滚动到指定DIV实现代码
2013/09/25 Javascript
js实现同一页面多个运动效果的方法
2015/04/10 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
详解微信小程序——自定义圆形进度条
2016/12/29 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
javascript实现页面滚屏效果
2017/01/17 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
layer.open回调获取弹出层参数的实现方法
2019/09/10 Javascript
JS如何实现封装列表右滑动删除收藏按钮
2020/07/23 Javascript
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
Python使用htpasswd实现基本认证授权的例子
2014/06/10 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python numpy函数中的linspace创建等差数列详解
2017/10/13 Python
Pycharm更换python解释器的方法
2018/10/29 Python
python控制nao机器人身体动作实例详解
2019/04/29 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
python 实现一个图形界面的汇率计算器
2020/11/09 Python
python3中数组逆序输出方法
2020/12/01 Python
HTML5 visibilityState属性详细介绍和使用实例
2014/05/03 HTML / CSS
PHP如何与mysql建立链接
2013/05/05 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
2014年收银工作总结
2014/11/13 职场文书
违反工作规定检讨书范文
2014/12/14 职场文书
2015年大学生工作总结
2015/04/21 职场文书
信息技术研修心得体会
2016/01/08 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书