当前位置: 首页 > news >正文

go初识iris框架(四) -框架设置操作

前言

iris(1)
iris(2)
iris(3)

框架设置操作

当我们的一个路径是xxx/user/info,xxx/user/login,xxx/user/register的时候,我们发现前面都有一个user,我们如果用/{data:string}这样的话这样导致我们的路径是灵活的,所以我们得用其他方法

这里我们的路径是以anime为例

animeParty := app.Party("/animes",func(ctx iris.Context){//处理下一级请求ctx.Next()
})
animeParty.Get("/djsy",func(ctx iris.Context){djsyMsg := Anime{Fid:0,FName: "刀剑神域",ZFNumber:0,}ctx.JSON(djsyMsg)
})
animeParty.Get("/yls1",func(ctx iris.Context){djsyMsg := Anime{Fid:1,FName: "野良神第一季",ZFNumber:0,}ctx.JSON(djsyMsg)
})

Golang中分组处理

/**用户模块usersxxx/users/register 注册xxx/users/login   登陆xxx/users/info    获取用户信息
*/
/**路由组请求/users:自定义
*/
userParty := app.Party("/users",func(ctx iris.Context){ctx.Next()
})
userParty.Get("/register",func(ctx iris.Context){userMsg := []User{{Uid: 0,Name: "admin"},{Uid: 1,Name: "zhangsan"},}ctx.JSON(userMsg)
})userParty.Get("/login",func(ctx iris.Context){userMsg := []User{{Uid: 0,Name: "admin"},{Uid: 1,Name: "zhangsan"},}ctx.JSON(userMsg)
})

这个Party()会返回一个Party结构体对象,其中func()是匿名函数,我们可以定义一个方法来引用方法

userParty := app.Party("/users",userPartyFunc)func userPartyFunc(ctx iris.Context){ctx.Next()
}

路由中的Done方法

当你执行完请求执行了Next()方法,就会去执行Done()方法,表示你的请求完成了

userParty := app.Party("/admin",func(ctx iris.Context){})
userParty.Done(func(ctx iris.Context){app.Application.Logger().Info("<respones:"+ctx.Path())
})
userParty.Get('/info',func(ctx iris.Context){})

如果你需要进行一些配置

app.Configure()来进行配置

//一、通过程序代码对应用进行全局配置
app.Configure(iris.WithConfiguration(iris.Configuration{//如果设置为true,当人为中断程序时,则不会正常将服务关闭,如果设置为true,需要自己自定义处理DisableInterruptHandler: false,//该配置项表示更正并将请求的路径重定向到已注册的路径//比如:如果请求/home/但找不到比Route的处理程序,然后路由器检查/home处理程序是否存在,如果是,permant)将客户端重定向到正确的路径/home。//默认为falseDisablePathCorrection: false,EnablePathEscape: false,FireMethodNotAllowed: false,DisableBodyConsumptionOnUnmarshal: false,DisableAutoFireStatusCode: false,TimeFormat: "Mon.02 Jan 2006 15:04:05 GMT",Charset: "utf-8",
}))//二、通过读取tml配置文件读歌服务配置
//注意:要在rUn方法运行之前执行
app.Configure(iris.WithConfiguration(iris.T0ML(filename:"tml-path"))
//三、通过读取yam1配置文件读取服务配置//同样要在run方法运行之前执行
app.Configure(iris.WithConfiguration(iris.YAML(filename:"yml-path"))
//四、通过j50n配置文件进行应用配置
file,-=os,0pen(name:"json-path")
defer file.Close()

相关文章:

go初识iris框架(四) -框架设置操作

前言 iris(1) iris(2) iris(3) 框架设置操作 当我们的一个路径是xxx/user/info,xxx/user/login,xxx/user/register的时候,我们发现前面都有一个user,我们如果用/{data:string}这样的话这样导致我们的路径是灵活的&#xff0c;所以我们得用其他方法 这里我们的路径是以anime为…...

python基础语法(二)

目录 注释注释的语法注释行文档字符串 注释的规范 输入输出和用户的交互通过控制台输出通过控制台的输入 注释 注释的语法 注释行 python的注释:使用#开通的行都是注释 # 这是一行注释C语言的注释:使用//的都是注释 // 这是一行注释文档字符串 使用三引号引起来的称为文档…...

从本地到Gitee:一步步学习文件上传及解决常见报错问题

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;一步步学习文件上传及解决常见报错问题 文章目录 安装git进入gitee官网&#xff0c;登录账号新建仓库先打开git命令行上传本地资源到仓库第一步&#xff1a;git init第二步&#xff1a;git add .第三…...

idea2018修改大小写提示(敏感)信息

操作步骤如下&#xff1a; File > Settings > Editor > Code Completion > Code Completion&#xff08;默认是首字母&#xff0c;选为none将不区分大小写&#xff09;...

Quartz.Net调度框架简介

Quartz.Net是一个功能强大的开源任务调度框架&#xff0c;它可以在C#应用程序中实现灵活、可靠的任务调度和定时作业。它的主要作用是允许开发人员按照预定的时间表执行各种任务&#xff0c;例如定期生成报表、发送电子邮件、备份数据等。 在C#中使用Quartz.Net进行配置、开发…...

HarmonyOS/OpenHarmony(Stage模型)应用开发组合手势(一)连续识别

组合手势由多种单一手势组合而成&#xff0c;通过在GestureGroup中使用不同的GestureMode来声明该组合手势的类型&#xff0c;支持连续识别、并行识别和互斥识别三种类型。 .GestureGroup(mode:GestureMode, …gesture:GestureType[]) mode&#xff1a;必选参数&#xff0c;为G…...

Redis --- 位图

目录 背景 结构 存取方式 统计和查找 背景 开发过程中&#xff0c;会有布尔类型的存储&#xff0c;比如记录一个用户一年365天的签到情况&#xff0c;如果每天都要有一个布尔变量&#xff0c;多个用户&#xff0c;亦或者使用k-v形式&#xff0c;上亿用户的话这个存储量是惊…...

自然语言处理-词向量模型-Word2Vec

通常数据的维度越高&#xff0c;能提供的信息也就越多&#xff0c;从而计算结果的可靠性就更值得信赖 如何来描述语言的特征呢&#xff0c;通常都在词的层面上构建特征&#xff0c;Word2Vec就是要把词转换成向量 假设现在已经拿到一份训练好的词向量&#xff0c;其中每一个词都…...

List知识总结

ArrayList: 1 ArrayList扩容底层用到的是&#xff1b;System.arraycopy. 2 扩容的长度计算&#xff1b;int newCapacity oldCapacity (oldCapacity >> 1);&#xff0c;旧容量 旧容量右移1位&#xff0c;这相当于扩容为原 来容量的(int)3/2. 3 ArrayList<String…...

代码随想录day32

122.买卖股票的最佳时机 II ● 力扣题目链接 ● 给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 ● 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。 ● 注意&#xff1a;你不能同…...

2.8 PE结构:资源表详细解析

在Windows PE中&#xff0c;资源是指可执行文件中存放的一些固定不变的数据集合&#xff0c;例如图标、对话框、字符串、位图、版本信息等。PE文件中每个资源都会被分配对应的唯一资源ID&#xff0c;以便在运行时能够方便地查找和调用它们。PE文件中的资源都被组织成一个树形结…...

Python数据类型的相互转换

简单数据类型之间的转换 1.字符串如果是数字的&#xff0c;转换为int类型 a "10" a int(a) print(a) 2.数字类型转换成bool类型 a 10 a bool(a) print(a) 只有0才是false&#xff0c;其他值是True 复杂数据类型之间的转换 list&#xff1a;列表 tuple&…...

阿里云云主机免费试用三个月

试用链接如下&#xff1a; 阿里云云产品免费试用 云主机 费用试用三个月&#xff0c;每月750小时 实例规格 1核(vCPU) 2 GiB S6 系列机型 适用搭建网站等场景 网络带宽 1M 公网固定网络带宽 云盘40 GiB 真香&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…...

OpenHarmony 使用 ArkUI Inspector 分析布局

● 摘要&#xff1a;视图的嵌套层次会影响应用的性能&#xff0c;开发者应该移除多余的嵌套层次&#xff0c;缩短组件刷新耗时。本文会介绍如何使用 ArkUI Inspector 工具分析布局&#xff0c;提示应用响应性能。 ● 关键字&#xff1a;列举本文相关的关键字&#xff1a;OpenH…...

Axes3D绘制3d图不出图解决办法【Python】

运行下面一段代码​&#xff1a; import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D#这里设函数为y3x2x_data [1.0,2.0,3.0]y_data [5.0,8.0,11.0]​def forward(x): return x * w b​def loss(x,y): y_pred forward(x) …...

Idea中 css 、js 压缩插件会自动生成xxx.min.css、xxx.min.js文件

第一步&#xff1a;下载yuicompressor-2.4.8.jar 下载路径&#xff1a;打开搜索 YUI compressor Maven Repository: Search/Browse/Explore (mvnrepository.com)https://mvnrepository.com/ 找到点击下载即用&#xff08;如下图&#xff09; 创建文件夹&#xff0c;放入idea文…...

win11无法加载文件,因为在此系统上禁止运行脚本

问题背景&#xff1a; 最近升级了windows11&#xff0c;文件右键打开终端&#xff0c;默认是使用的powershell。 后面安装npm包依赖的时候&#xff0c;遇到了无法加载文件&#xff0c;因为在此系统上禁止运行脚本。 提示中可以通过访问链接查看&#xff1a;https:\go.micros…...

Spring Boot将声明日志步骤抽离出来做一个复用类

上文Spring Boot日志基础使用 设置日志级别中我们写了个比较基本的日志操作 但也随之产生了一个问题 我们这行代码 能不能不写&#xff1f; 具体说 我们不希望每个需要日志的类都声明一个在这 看着太不美观了 我们最简单方法当然是继承 我们找个目录创建一个类 叫 BaseClass…...

RabbitMQ实现数据库与ElasticSearch的数据同步和分享文件过期处理

&#x1f388; 1 参考文档 RabbitMQ实现数据库与ElasticSearch的数据同步 | Hannya。-CSDN 企业级开发项目实战——基于RabbitMQ实现数据库、elasticsearch的数据同步 | 波总说先赚它一个小目标-CSDN SPringBoot集成RabbitMQ实现30秒过期删除功能 | 军大君-CSDN &#x1f50d; …...

PyCharm集成开发环境安装、启动与设置

作为非开发工程师职业,大家多多少少都会对编程有抵触,其实没有必要对Python有太大的“戒心" ,把Python当做你的一个工具就可以了。——扎克伯格 一、Python的定义&#xff1a; Python是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python的设计具有…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

CMake 从 GitHub 下载第三方库并使用

有时我们希望直接使用 GitHub 上的开源库,而不想手动下载、编译和安装。 可以利用 CMake 提供的 FetchContent 模块来实现自动下载、构建和链接第三方库。 FetchContent 命令官方文档✅ 示例代码 我们将以 fmt 这个流行的格式化库为例,演示如何: 使用 FetchContent 从 GitH…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

AspectJ 在 Android 中的完整使用指南

一、环境配置&#xff08;Gradle 7.0 适配&#xff09; 1. 项目级 build.gradle // 注意&#xff1a;沪江插件已停更&#xff0c;推荐官方兼容方案 buildscript {dependencies {classpath org.aspectj:aspectjtools:1.9.9.1 // AspectJ 工具} } 2. 模块级 build.gradle plu…...

10-Oracle 23 ai Vector Search 概述和参数

一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI&#xff0c;使用客户端或是内部自己搭建集成大模型的终端&#xff0c;加速与大型语言模型&#xff08;LLM&#xff09;的结合&#xff0c;同时使用检索增强生成&#xff08;Retrieval Augmented Generation &#…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...