iris 框架搭建这个系列主要参考iris-v12官方文档+Example。
iris-v12Example
import (
"strconv"
"github.com/kataras/iris/v12"
"github.com/kataras/iris/v12/middleware/logger"
"github.com/kataras/iris/v12/middleware/recover"
)
func main() {
app := iris.New()
//打印app正在使用的golog Logger实例,
//总共六种级别disable,fatal,error,warn,info,debug
//默认为info级别,可以设置,也可以自己自定义级别。
app.Logger().SetLevel("debug")
// 添加两个中间件
// 1.可以从任何http相关panic中恢复,默认打印包含err内容的warn级别的日志
// 2.请求日志中间件,请不要将它与框架的日志混淆。这只是针对http请求的。
app.Use(recover.New())
app.Use(logger.New(
logger.Config{
// 是否记录状态码,默认false
Status: true,
// 是否记录远程IP地址,默认false
IP: true,
// 是否呈现HTTP谓词,默认false
Method: true,
// 是否记录请求路径,默认true
Path: true,
// 是否开启查询追加,默认false
Query: true,
//是否以列模式显示,默认false
Columns: false,
}))
// 第一种方式
// Method: GET
// url: http://localhost:8080/html
app.Handle("GET", "/html", func(ctx iris.Context) {
ctx.HTML("<h1>街角魔族是最好看的动漫</h1>")
})
// 第二种方式
// 等效于 app.Handle("GET", "/text", func)
// Method: GET
// url: http://localhost:8080/text
app.Get("/text", func(ctx iris.Context) {
ctx.WriteString("街角魔族是最好看的动漫")
})
// 参数num不为uint64类型时触发recover中间件
// Method: GET
// url: http://localhost:8080/json?num=uint64
app.Get("/json", func(ctx iris.Context) {
numStr := ctx.URLParam("num")
number, err := strconv.ParseUint(numStr, 10, 0)
if err != nil {
ctx.JSON(iris.Map{"data": nil, "success": "fail"})
panic(err)
}
type data struct {
Name string
Number uint64
Adj string
}
if number != 1 {
ctx.JSON(iris.Map{"data": nil, "success": "fail"})
return
}
anime := data{}
anime.Name = "街角魔族是世界第"
anime.Number = number
anime.Adj = "好看"
ctx.JSON(iris.Map{"data": anime, "success": "success"})
})
//Run(serve iris.Runner, withOrWithout ...iris.Configurator)
//可选参数iris.Configurator自行查找
//监听8080端口号
app.Run(iris.Addr(":8080"))
}
运行后如果控制台打印以下内容则为成功
[DBUG] 2020/06/29 14:50 Host: register server shutdown on interrupt(CTRL+C/CMD+C)
Now listening on: http://localhost:8080
Application started. Press CTRL+C to shut down.
可以在浏览器输入以下url查看结果
url: http://localhost:8080/html
或使用Postman查看结果⬇以下红框只画一次给没用过的人看一下关键标识的位置。
可见结果返回的是html,当然这个其实不常用,返回页面也不是用的这个方法。
发送请求后打印的日志记录⬇
[INFO] 2020/06/29 15:17 200 0s ::1 GET /html
url:http://localhost:8080/json?num=a,参数num不能转换为uint64将触发recover中间件
打印warn级别日志
[WARN] 2020/06/29 15:19 Recovered from a route's Handler('main.main.func3')
At Request: 200 /json GET ::1
Trace: strconv.ParseUint: parsing "a": invalid syntax
再来个正确的例子⬇
没错街角魔族就是世界第一好看的anime
以上结束,具体细节看代码。下次更新mvc结构的搭建。
原网址: 访问
创建于: 2022-08-13 03:01:11
目录: default
标签: 无
未标明原创文章均为采集,版权归作者所有,转载无需和我联系,请注明原出处,南摩阿彌陀佛,知识,不只知道,要得到
java windows火焰图_mob64ca12ec8020的技术博客_51CTO博客 - 在windows下不可行,不知道作者是怎样搞的 监听SpringBoot 服务启动成功事件并打印信息_监听springboot启动完毕-CSDN博客 SpringBoot中就绪探针和存活探针_management.endpoint.health.probes.enabled-CSDN博客 u2u转换板 - 嘉立创EDA开源硬件平台 Spring Boot 项目的轻量级 HTTP 客户端 retrofit 框架,快来试试它!_Java精选-CSDN博客 手把手教你打造一套最牛的知识笔记管理系统! - 知乎 - 想法有重合-理论可参考 安宇雨 闲鱼 机械键盘 客制化 开贴记录 文本 linux 使用find命令查找包含某字符串的文件_beijihukk的博客-CSDN博客_find 查找字符串 ---- mac 也适用 安宇雨 打字音 记录集合 B站 bilibili 自行搭建 开坑 真正的客制化 安宇雨 黑苹果开坑 查找工具包maven pom 引用地 工具网站 Dantelis 介绍的玩轴入坑攻略 --- 关于轴的一些说法 --- 非官方 ---- 心得而已 --- 长期开坑更新 [本人问题][新开坑位]关于自动化测试的工具与平台应用 机械键盘 开团 网站记录 -- 能做一个收集的程序就好了 不过现在没时间 -- 信息大多是在群里发的 - 你要让垃圾佬 都去一个地方看难度也是很大的 精神支柱 [超级前台]sprinbboot maven superdesk-app 记录 [信息有用] [环境准备] [基本完成] [sebp/elk] 给已创建的Docker容器增加新的端口映射 - qq_30599553的博客 - CSDN博客 [正在研究] Elasticsearch, Logstash, Kibana (ELK) Docker image documentation elasticsearch centos 安装记录 及 启动手记 正式服务器 39 elasticsearch 问题合集 不断更新 6.1.1 | 6.5.1 两个版本 博客程序 - 测试 - bug记录 等等问题 laravel的启动过程解析 - lpfuture - 博客园 OAuth2 Server PHP 用 Laravel 搭建带 OAuth2 验证的 RESTful 服务 | Laravel China 社区 - 高品质的 Laravel 和 PHP 开发者社区 利用Laravel 搭建oauth2 API接口 附 Unauthenticated 解决办法 - 煮茶的博客 - SegmentFault 思否 使用 OAuth2-Server-php 搭建 OAuth2 Server - 午时的海 - 博客园 基于PHP构建OAuth 2.0 服务端 认证平台 - Endv - 博客园 Laravel 的 Artisan 命令行工具 Laravel 的文件系统和云存储功能集成 浅谈Chromium中的设计模式--终--Observer模式 浅谈Chromium中的设计模式--二--pre/post和Delegate模式 浅谈Chromium中的设计模式--一--Chromium中模块分层和进程模型 DeepMind 4 Hacking Yourself README.md update 20211011
Laravel China 简书 知乎 博客园 CSDN博客 开源中国 Go Further Ryan是菜鸟 | LNMP技术栈笔记 云栖社区-阿里云 Netflix技术博客 Techie Delight Linkedin技术博客 Dropbox技术博客 Facebook技术博客 淘宝中间件团队 美团技术博客 360技术博客 古巷博客 - 一个专注于分享的不正常博客 软件测试知识传播 - 测试窝 有赞技术团队 阮一峰 语雀 静觅丨崔庆才的个人博客 软件测试从业者综合能力提升 - isTester IBM Java 开发 使用开放 Java 生态系统开发现代应用程序 pengdai 一个强大的博主 HTML5资源教程 | 分享HTML5开发资源和开发教程 蘑菇博客 - 专注于技术分享的博客平台 个人博客-leapMie 流星007 CSDN博客 - 舍其小伙伴 稀土掘金 Go 技术论坛 | Golang / Go 语言中国知识社区
最新评论