一、Iris简介

Iris官网:https://iris-go.com

  • Iris以简单而强大的 api 而闻名。Iris同样擅长MVC
  • Iris是唯一一个拥有MVC架构模式丰富支持的Go Web框架,性能成本接近于零。
  • Iris为您提供构建面向服务的应用程序的结构,用Iris构建微服务很容易。

二、创建项目

下面我们从通过创建”邮客星球“项目作为起步开始学习如何使用 Iris

新建项目文件

首先新建项目文件夹 uPlanet ,进入该文件夹新建go文件 main.go.

通过使用go mod进行依赖管理,接下来我们在uPlanet文件夹下执行以下命令来初始化go mod

go mod init uPlanet

初始化完成之后会在项目根目录中生成一个go.mod文件。

添加 iris 依赖

在项目根目录执行以下命令来添加 iris 依赖

go get github.com/kataras/iris@master

执行命令后go.mod会自动添加Iris的依赖,示例如下:

module UPlanet

go 1.15

require (
	github.com/CloudyKit/fastprinter v0.0.0-20200109182630-33d98a066a53 // indirect
	github.com/kataras/iris v0.0.0-20191006184023-c8e73f4f4df2 // indirect
	github.com/klauspost/compress v1.11.0 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.1 // indirect
	github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect
)

可以看出 require 不仅添加了Iris,还有一些其他的依赖,这些都是Iris所需要的。至此便成功创建了Iris的项目,接下来就可以使用Iris了。

三、搭建http服务

接下来,我们修改main.go文件,来启动一个简单的 http 服务。代码如下:

package main

import (
    "github.com/kataras/iris"

    "github.com/kataras/iris/middleware/logger"
    "github.com/kataras/iris/middleware/recover"
)

func main() {
    app := iris.New()
    app.Logger().SetLevel("debug")
    // Optionally, add two built'n handlers
    // that can recover from any http-relative panics
    // and log the requests to the terminal.
    app.Use(recover.New())
    app.Use(logger.New())

    // Method:   GET
    // Resource: http://localhost:8080/html
    app.Handle("GET", "/html", func(ctx iris.Context) {
        ctx.HTML("<h1>Hello Iris!</h1>")
    })

    // Method:   GET
    // Resource: http://localhost:8080/text
    app.Get("/text", func(ctx iris.Context) {
        ctx.WriteString("Hello Iris!")
    })

    // Method:   GET
    // Resource: http://localhost:8080/json
    app.Get("/json", func(ctx iris.Context) {
        ctx.JSON(iris.Map{"message": "Hello Iris!"})
    })

    // http://localhost:8080/html
    // http://localhost:8080/text
    // http://localhost:8080/json
    app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
}