iris-v12 框架搭建一 快速启动_BangBrother的博客-CSDN博客

iris-v12 框架搭建一 快速启动

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查看结果⬇以下红框只画一次给没用过的人看一下关键标识的位置。
iris-quick-start-1
可见结果返回的是html,当然这个其实不常用,返回页面也不是用的这个方法。
发送请求后打印的日志记录⬇

[INFO] 2020/06/29 15:17 200   0s ::1 GET /html

url:http://localhost:8080/json?num=a,参数num不能转换为uint64将触发recover中间件
iris-quick-start-2
打印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

再来个正确的例子⬇
iris-quick-start-3
没错街角魔族就是世界第一好看的anime
以上结束,具体细节看代码。下次更新mvc结构的搭建。


原网址: 访问
创建于: 2022-08-13 03:01:11
目录: default
标签: 无

请先后发表评论
  • 最新评论
  • 总共0条评论